【发布时间】:2013-08-08 05:51:50
【问题描述】:
我使用 matlab 编写了一个包含多次迭代的程序。由于每次迭代中的数据处理都与前一次迭代中的数据处理相关,因此无法对其进行矢量化。
然后我使用内置的 MATLAB 编码器将 matlab 代码转换为 mex,结果速度甚至更低。我不知道我是否需要自己编写 mex 代码,因为 mex 代码似乎没有帮助。
【问题讨论】:
-
我不认为它是重复的,这个问题是处理在 MEX-MATLAB 网关级别发生减速的特定情况(根据接受的答案,这是在 R2011a 中修复的),加上 OP 甚至没有使用 MX-API 功能。而这个使用 MATLAB coder 进行代码生成。也就是说,这个问题不能以目前的形式得到合理的回答,我们需要看一些代码(例如原始的 MATLAB 代码是什么,生成的 C 代码是什么)..
-
您是否尝试过在 C 语言中使用 Matlab 的分析器工具和时钟函数来确定哪些部分占用的时间最多? Amro 是对的,请发布一些代码。
标签: c matlab mex performance matlab-coder