2016-09-20 8 views
0

行列を回転させてスパイラルな値の順序を作成するにはどうすればよいですか?例えば行列を回転させてスパイラルな値の順序を作成する

12 4 2 
8 3 11 
6 7 2 

は私が12 4 2 11 2 7 6 8 3を表示するようにすることが出来るのですが、私は1行で終了し、機能を90度回転させる方法がわかりません。助けを前にありがとう。

+0

あなたの研究の努力を含める(もしあれば)、あなたはこれまでにしようとしている何をしてください! Stackoverflowは他の人にあなたの関数を作るように依頼する場所ではありません – 0xDEADC0DE

答えて

3

ヒント

チェックspiral機能:

spiral(n)が方形スパイラルパターンでn^2から1から の範囲の要素とn行列n行列です。

出力を使用して、元の値にインデックスを作成します。値の順序を逆にするには、sortfliplrが必要な場合もあります。

試してみた後にコードを参照してください。

x = [12 4 2; 8 3 11; 6 7 2];
t = fliplr(spiral(sqrt(numel(x))));
[~, ind] = sort(t(:));
result = fliplr(x(ind).');

1
A =[12  4  2;... 
    8  3 11;... 
    6  7  2]; 

B=[]; 

for ii=1:5 

B = [B A(1,:)]; 

A(1,:)=[]; 

A=rot90(A); 

end 
B 

B =

12  4  2 11  2  7  6  8  3 
関連する問題