如何扭转矩阵的元素?

时间:2018-05-10 19:45:10

标签: matlab matrix

我试图反转矩阵的元素,使得元素的给定矩阵顺序反转。 我的代码如图3x3矩阵所示。

X  = [ 1 2 3 ; 4 5 6 ; 7 8 9 ];
B = [fliplr(X(3,:));fliplr(X(2,:));fliplr(X(1,:))];

输入X =

 1     2     3
 4     5     6
 7     8     9

输出: B =

 9     8     7
 6     5     4
 3     2     1

上面的代码我试图用以下代码概括任何矩阵

[a,b]=size(X);
for i=0:a-1
    A  = [fliplr(X(a-i,:))];
end 

但只获得最后一行作为输出。

输出A =

 3     2     1 

请帮我在反转之后将矩阵的所有行连接起来。

2 个答案:

答案 0 :(得分:3)

rot90是为此目的而制作的功能。

B = rot90(A,2);

答案 1 :(得分:2)

您的代码不起作用,因为您在每次循环迭代中覆盖A。相反,您应该索引到A以保存每一行。

然而,fliplr可以翻转整个矩阵。你想左/右和上/下翻转:

B = flipud(fliplr(X));

这与旋转矩阵相同(在写这篇文章时为Sardar posted):

B = rot90(X,2);

完全不同的方法适用于任何维度的数组:

X(:) = flipud(X(:));