Dynamically arrange the matrix in each for loop

1 view (last 30 days)
I have two matrix a = [3 5 6 7] and b = [2 4 6 1; 5 7 8 9]. I need to dynamic arrange the matrix b when the position of a is changing.
For example,
First loop, a = [3 5 6 7]
b = [2 4 6 1
5 7 8 9]
But at the second loop, the position for b is changed a = [7 3 5 6]
b = [1 2 4 6
9 5 7 8]
and so on for the subsequent loop. Is this possible to happen? Thank you.

Accepted Answer

Eric Pahlke
Eric Pahlke on 15 Dec 2011
Definitely possible.
a = [3 5 6 7];
b = [2 4 6 1; 5 7 8 9];
for ii = 1:4
% do_stuff(a,b);
disp('iteration:')
disp(ii);
a
b
a = [a(end) a(1:end-1)];
b = [b(:,end) b(:,1:end-1)];
end
  4 Comments
Chin
Chin on 15 Dec 2011
The problem is when a = [6 5 3 7]
i will get the result b = [6 4 2 1; 8 7 5 9]. Is that possible need to use indexing?
Andrei Bobrov
Andrei Bobrov on 15 Dec 2011
x = a(randperm(4));
[loc,loc] = ismember(x,a);
b1 = b(:,loc)

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!