MATLAB Answers

change order of a row vector

2 views (last 30 days)
I am trying to change the order of a vector [ 1 2 3 4 5 6] into [ 3 4 5 1 2 6] while using a determinative vector B=[ 3 4 5],
but when I run the code I get a vector [3 4 5 2 1 6];
x == num
for i = 1:length(B)
if isequal(B(i),num(i)) == 0
tmp = num(i);
num(i) = num(B(i));
num(B(i)) = tmp;
end
end

  2 Comments

madhan ravi
madhan ravi on 30 May 2020
Is B a subset of the vector always?
Ismail Güclü
Ismail Güclü on 30 May 2020
B shall show you the position from x

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 30 May 2020
Edited: madhan ravi on 30 May 2020
ix = setdiff(1:numel(vector), B);
Wanted = [vector(B), vector(ix)]

  2 Comments

madhan ravi
madhan ravi on 30 May 2020
Wow just realised sir Walter answered it after reading the activity feed. I acknowledged the generosity sir Walter. Thank you!
Ismail Güclü
Ismail Güclü on 30 May 2020
I dont know why but his comment disappeared ...

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by