使用matlab顺时针旋转和附加矩阵

时间:2013-11-02 02:53:08

标签: matlab

我想旋转一个给定的矩阵,并在下面的同时追加/连接。

if in: [1]
then out: [1]

if in: [1,2; 3,4]
then out: [1,2,1; 3,4,3; 1,2,1]

if in: [1,2,3; 4,5,6]
then out: [1,2,3,2,1; 4,5,6,5,4; 1,2,3,2,1]

and so on...

有没有办法可以使用matlab的内置函数来实现?如果是,可以在不使用任何工具箱的情况下显示一个......谢谢。

2 个答案:

答案 0 :(得分:0)

要实现向下和向右矩阵的对称复制,这与问题中的示例匹配:

a = [1,2,3; 4,5,6];
aRep = a([1:end end-1:-1:1],[1:end end-1:-1:1])
aRep =
     1     2     3     2     1
     4     5     6     5     4
     1     2     3     2     1

然后旋转,您可以使用rot90(aRep,-1)顺时针旋转90度。

答案 1 :(得分:0)

如果A是你的矩阵:

n = size(A,1);
X = A(:,1:n-1);
Y = fliplr(X)
A = [A Y];

X = A(1:n-1,:);
Y = fliplr(X')';
A = [A; Y];

你的最终结果应该在A。

你可能会发现一些语法错误,我没有matlab来检查。