MATLAB Answers

0

how to shift specific elements in a array to a specific position?

Asked by Nurahmed on 21 Jun 2019
Latest activity Answered by Nurahmed on 21 Jun 2019
I have an arry A = [1,2,3,4,5,6,7,8,9,10]. I want specific elements to shift the order but remain with the same elements. E.x. I want 3 elements (7,8,9) in A to shift 3 postions to the left to get an array B = [1,2,3,7,8,9,4,5,6,10]
Thanks,
Nur

  1 Comment

Hi,
I assume that you know the index from which you need to shift.
Here,
a=1:10;
k=7;i=3;
b=[a(1:k-i-1) a(k:k+i-1) a(k-i:k-1) a(k+i:end )];

Sign in to comment.

2 Answers

Answer by obaldia on 21 Jun 2019
 Accepted Answer

Hello Nur!
Just shift the positions in the vector if you know the current position,
A = [1,2,3,4,5,6,7,8,9,10]
startPos = 7;
numElements = 3;
B = A;
oldElements = A(startPos-numElements:startPos-1);
B(startPos-numElements:startPos-1)=A(startPos:startPos+numElements-1);
B(startPos:startPos+numElements-1)=oldElements

  0 Comments

Sign in to comment.


Answer by Nurahmed on 21 Jun 2019

Hi,
Thanks a lot!

  0 Comments

Sign in to comment.