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

20 views (last 30 days)
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
Manali Gupta
Manali Gupta on 21 Jun 2019
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.

Accepted Answer

obaldia
obaldia on 21 Jun 2019
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

More Answers (1)

Nurahmed
Nurahmed on 21 Jun 2019
Hi,
Thanks a lot!

Categories

Find more on Data Types in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!