Matlab运算效率对比

首先,推荐一篇比较,分析了四种执行函数效率对比。

Ref:https://zhuanlan.zhihu.com/p/35808505?group_id=969873960783101952

结果:直接调用>匿名>feval>eval。但不是说就不用eval了,eval是个很灵活的函数,在批量读取命名处理等地方非常好用。

25个案例里面的比较

结果:匿名,子函数,嵌套函数效率类似,inline效率极低,而且差很多。

很多时候自己的程序可以tic,toc试试比较一下。

自己的一些经验:

1.我用的是17b的版本,个人推荐用新不用旧,新版本提供了更多的库,优化更好,效率通常会更高一点。虽然17b有点速度问题。。据说18a已经改进了。

2. 从17b的使用上来说,因为自己做了大文件数据处理。有一点经验是,小文件上matlab的读取和处理效率是很快的,速度可以接受。当数据文件大小超过了一定阈值的时候,效率显著变慢,以数量级上升。

我用了三种方式读取这个坑爹的大文件,直接读取,matlab自己切块读取,mex。

效率排序:mex>切块>直接读取。而且差距异常之大。


猜你喜欢

转载自blog.csdn.net/sylvia0726/article/details/80005331