提问之八:如何将一个矩阵顺时针旋转180度?

浏览:140025 回答:10

如何将一个矩阵顺时针旋转180度?

方法越多越好!

邀请回答 我来回答

全部回答

(10)
默认 最新
laoda
用旋转矩阵就行了P'=MP. P'是旋转后的矩阵, P 是旋转前的矩阵, M 是旋转矩阵. 根据绕x,y,z不同的旋转轴, M略有不同. 旋转矩阵形如[cos(theta), -sin(theta), 0; sin(theta), cos(theta),0; 0, 0, 1], 这个好象是绕Z轴旋转, 给出你任意的旋转角度就行
2006年9月5日
评论 点赞
IF_THEN
用旋转图象的命令imrotate也可以实现矩阵的旋转,

B=imrotate(A,180)
2006年9月3日
评论 点赞
IF_THEN

其实还有利用图象处理函数的方法,还有跟帖的吗?

2006年9月3日
评论 点赞
求知者

function rotm180=rotm180(M)

M1=M';
M2=M1(:);


[a,b]=size(M2);
for i=1:a
M3(i)=M2(a-i+1);
end


[a,b]=size(M);
for i=1:a
for j=1:b
rotm180(i,j)=M3((i-1)*b+j);
end
end

2006年8月24日
评论 点赞
IF_THEN

呵呵,还有啊~

2006年8月24日
评论 点赞
六翼天使

还可以结合使用flipud和fliplr两个命令来实现;
flipud用于上下翻转矩阵,fliplr用于左右翻转矩阵,示例如下:
a =


3 5 4
6 7 8
9 10 1
11 12 13

flipud(fliplr(a));
ans =


13 12 11
1 10 9
8 7 6
4 5 3

结果和rot90(a,-2)的效果是一样的。

2006年8月23日
评论 点赞
IF_THEN
应该还有其他方法。
2006年8月23日
评论 点赞
malong

matlab
帮助文件的解释如下!

MATLAB Function Reference rot90 Rotate matrix 90° SyntaxB = rot90(A)
B = rot90(A,k)
DescriptionB = rot90(A) rotates matrix A counterclockwise by 90 degrees. B = rot90(A,k) rotates matrix A counterclockwise by k*90 degrees, where k is an integer. ExamplesThe matrix X =
1 2 3
4 5 6
7 8 9
rotated by 90 degrees is Y = rot90(X)
Y =
3 6 9
2 5 8
1 4 7
2006年8月23日
评论 点赞
malong
或者连续逆时针旋转2次,也即瞬时针旋转了180度,默认值逆时针旋转90度!
2006年8月23日
评论 点赞
malong

举例如下:
A=[1,2,3;4,5,6]; !设置矩阵A数值
B=rot90(A,-2); !-2代表逆时针旋转90×(-2)度,也即瞬时针旋转180度!
结果如下:
A =


1 2 3
4 5 6
B2 =


6 5 4
3 2 1

2006年8月23日
评论 点赞

没解决?试试专家一对一服务

换一批
    App下载
    技术邻APP
    工程师必备
    • 项目客服
    • 培训客服
    • 平台客服

    TOP