声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4338|回复: 6

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

[复制链接]
发表于 2006-8-24 17:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
作者:求知者

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

例子:
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 编辑 ]

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2006-8-24 20:02 | 显示全部楼层
为什么现成的rot90不用?两次rot90不就是180度了吗?

评分

1

查看全部评分

 楼主| 发表于 2006-8-25 18:15 | 显示全部楼层
是的,但是思路是很多的
发表于 2006-8-29 01:25 | 显示全部楼层
也可以通过上下翻转和左右翻转实现啊,我感觉你的程序还是有点复杂了,而且还用了两个for循环嵌套,MATLAB强在矩阵运算,对于循环语句少用为好。

评分

1

查看全部评分

发表于 2009-8-10 16:01 | 显示全部楼层
那如果要实现任意角度旋转呢?这该怎么实现呀?
发表于 2009-8-10 17:54 | 显示全部楼层
flipud(fliplr(M));%最简洁

评分

1

查看全部评分

发表于 2009-8-10 18:31 | 显示全部楼层

回复 5楼 arnxuezhe 的帖子

help imrotate

[ 本帖最后由 friendchj 于 2009-8-10 18:32 编辑 ]

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 17:41 , Processed in 0.064662 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表