返回信息流用matlab写的代码。
有2500个txt文件.
每个TXT里有3000个7*6的矩阵.
取每个txt文件里第一个7*6矩阵,与其他所有2500个txt文件里的7*6矩阵做运算,比如做差。
把结果分别写在2500个新的TXT文件里。
我直接用for循环写的,发现效率太低了。
用的是个公司的破笔记本,主频是2.26GHz的。发现写一个txt要6分钟,导致这个办法基本不可行。
问问大牛有啥办法能实现这个运算么。
比如如何优化这个代码让他运行的更快点。
这是一条镜像帖。来源:北邮人论坛 / matlab / #11251同步于 2014/10/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
for循环太慢了,怎么办啊。
spiritme
2014/10/2镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
【 在 onlinext 的大作中提到: 】
: 建议使用矩阵矢量化,matlab擅长的是矩阵计算。使用for循环是C语言的常用思路,用在matlab里面效率反而不高。
大牛能说具体点不,它的例子是整体做个矩阵然后再运算吧,我这个还是没弄懂。
算法那个板有大牛给的方向说是减少读写次数。
这六分钟里面读写耗时太多了吧。。比较好的方法也就是减少读写了
比如说一次过把所有的文件读完,不要重叠读什么什么的。
【 在 spiritme (spirit) 的大作中提到: 】
: 用matlab写的代码。
: 有2500个txt文件.
: 每个TXT里有3000个7*6的矩阵.
: ...................
对,就是这个思路。把矩阵作为一个整体来计算,而不是循环遍历。
我把论坛的例子稍微修改了一下,你运行这个文件就可以看出两种方法效率的差别。
附件(531B) efficiency.m
Elapsed time is 0.172016 seconds.
Elapsed time is 0.030708 seconds.
【 在 spiritme 的大作中提到: 】
: 大牛能说具体点不,它的例子是整体做个矩阵然后再运算吧,我这个还是没弄懂。
: 算法那个板有大牛给的方向说是减少读写次数。
展开[ema21]
【 在 spiritme (spirit) 的大作中提到: 】
: 用matlab写的代码。
: 有2500个txt文件.
: 每个TXT里有3000个7*6的矩阵.
: 取每个txt文件里第一个7*6矩阵,与其他所有2500个txt文件里的7*6矩阵做运算,比如做差。
发自〖iBYR-IOS客户端〗