我想旋转一个给定的矩阵,并在下面的同时追加/连接。
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的内置函数来实现?如果是,可以在不使用任何工具箱的情况下显示一个......谢谢。
答案 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来检查。