声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2112|回复: 6

[编程技巧] 使用矢量化矩阵代替for循环

[复制链接]
发表于 2013-11-1 00:42 | 显示全部楼层 |阅读模式

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

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

x
最近看了一些关于matlab高效编程的资料,感觉用矢量化代替for循环这个思路很好,稍微研究了一下。
现在遇到了一个问题,不知如何解决,来与大家讨论一下。

有两个矩阵A和B,都是三阶矩阵。
a = rand(10,10,10000);
b = rand(10,10,10000);
for ii = 1:size(a,3);
   x(:,:,ii) = a(:,:,ii) * b(:,:,ii);
   xx(:,:,ii) = inv(a(:,:,ii));
end

如何使用矢量化的方法实现上述矩阵运算,谢谢各位了。

回复
分享到:

使用道具 举报

发表于 2013-11-1 09:51 | 显示全部楼层
发表于 2013-12-10 10:25 | 显示全部楼层
使用矢量化矩阵代替for循环 ,是个不错的思路啊 学习学习!!
 楼主| 发表于 2013-12-13 11:05 | 显示全部楼层
这个也不是万能的,有些时候和直接用for循环效率差不多
发表于 2013-12-13 17:46 | 显示全部楼层
 楼主| 发表于 2013-12-14 13:34 | 显示全部楼层
比如在循环内,存在矩阵求逆,就很不好处理
发表于 2013-12-16 10:27 | 显示全部楼层
给大家个链接,关于‘matlab for循环速度的提高方法’http://emuch.net/html/201205/4426082.html。大家可以参考一下!!希望大家有用
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-3 10:42 , Processed in 0.073940 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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