Dynamically arrange the matrix in each for loop

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.

 採用された回答

Eric Pahlke
Eric Pahlke 2011 年 12 月 15 日

0 投票

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 件のコメント

Chin
Chin 2011 年 12 月 15 日
How about each time the position for the b is random? Which means the
iteration 1 b = [3 5 6 7]
iteration 2 b = [5 3 7 6]
iteration 3 b = [7 3 5 6]
iteration 3 b = [6 5 7 3]
and so on. Thank you.
Andrei Bobrov
Andrei Bobrov 2011 年 12 月 15 日
c = cell(1,4)
for j1 = 1:4
c{j1} =circshift([a;b],[0 j1]);
end
Chin
Chin 2011 年 12 月 15 日
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 2011 年 12 月 15 日
x = a(randperm(4));
[loc,loc] = ismember(x,a);
b1 = b(:,loc)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

質問済み:

2011 年 12 月 15 日

Community Treasure Hunt

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

Start Hunting!

Translated by