icepoint 发表于 2006-8-24 17:39

[转]实现任意矩阵旋转180度的小程序

作者:求知者

function rotm180=rotm180(M)
M1=M'; M2=M1(:); =size(M2);
for i=1:a, M3(i)=M2(a-i+1); end
=size(M);
for i=1:a
    for j=1:b, rotm180(i,j)=M3((i-1)*b+j); end
end

例子:
a =
   1   2   3   4
   4   5   6   7
   7   8   9   0

>> rotm180(a)
ans =
   0   9   8   7
   7   6   5   4
   4   3   2   1

[ 本帖最后由 ChaChing 于 2009-8-10 19:04 编辑 ]

happy 发表于 2006-8-24 20:02

为什么现成的rot90不用?两次rot90不就是180度了吗?

icepoint 发表于 2006-8-25 18:15

是的,但是思路是很多的

sunning 发表于 2006-8-29 01:25

也可以通过上下翻转和左右翻转实现啊,我感觉你的程序还是有点复杂了,而且还用了两个for循环嵌套,MATLAB强在矩阵运算,对于循环语句少用为好。

arnxuezhe 发表于 2009-8-10 16:01

那如果要实现任意角度旋转呢?这该怎么实现呀?

VibrationMaster 发表于 2009-8-10 17:54

flipud(fliplr(M));%最简洁

friendchj 发表于 2009-8-10 18:31

回复 5楼 arnxuezhe 的帖子

help imrotate

[ 本帖最后由 friendchj 于 2009-8-10 18:32 编辑 ]
页: [1]
查看完整版本: [转]实现任意矩阵旋转180度的小程序