如何旋转矩阵以创建值的螺旋顺序?
例如,
12 4 2
8 3 11
6 7 2
我应该显示12 4 2 11 2 7 6 8 3
但我不知道如何在第1行终止并将功能旋转90度。在此先感谢您的帮助。
答案 0 :(得分:3)
提示:
检查spiral
功能:
spiral(n)
是一个n
- by -n
矩阵,其中包含元素范围 从1
到n^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