旋转矩阵以创建值的螺旋顺序

时间:2016-09-20 15:25:34

标签: matlab

如何旋转矩阵以创建值的螺旋顺序?

例如,

12 4 2 
8 3 11
6 7 2

我应该显示12 4 2 11 2 7 6 8 3但我不知道如何在第1行终止并将功能旋转90度。在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

提示

检查spiral功能:

  

spiral(n)是一个n - by - n矩阵,其中包含元素范围       从1n^2以矩形螺旋模式。

使用其输出构建原始值的索引。您可能还需要sort以及fliplr来反转值的顺序。

在您试用后查看代码。

  

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

答案 1 :(得分: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