首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >matlab structure mex

matlab structure mex
EN

Stack Overflow用户
提问于 2013-02-12 18:49:52
回答 1查看 174关注 0票数 0

我在一个项目中寻找一些建议,其中速度和性能是非常重要的。

我创建了一个模型,它包含一个带有1个for循环(25000次迭代)的外部函数,它调用几个自定义函数。为了提高模型的性能,我将定制的函数重写为MEX函数。这已经给了一个很好的加速。但是,我也想把外部for循环放在一个MEX函数中。但我在将数据从MATLAB传递到MEX函数时遇到了问题。(注意,不可能对for循环进行矢量化)。

在模型模拟之前已知的数据被保存到一个大型的数组嵌套结构中(以“data.Q.position1”的形式构建,其中“position1”是一个10000个双精度的数组)。所有包含双精度的数组都有相同的长度。模型的结果也将被写入这个数组结构(当然,不同的字段名,并且在for循环之前进行预分配)

所以目前,模型看起来是这样的:

代码语言:javascript
运行
复制
[data]  = function model(data)
for i=1:10000
    data.Q.position1(i) = MEX-function1(data.WL.position4(i), data.WL.position3(i), …);
    data.Q.position2(i) = MEX-function1(data.WL.position6(i), data.WL.position12(i), …);
    …
    data.WL.position7(i) = MEX-function2(data.Q.position1(i), …);
     …
end

我选择了数组的结构,这样我就可以轻松地指向函数输入所需的变量。

所以我的问题是,如何将for循环放在MEX函数中,以及我必须如何处理该结构?我是MEX和C语言的新手,所以也许有一个简单的解决方案……

其次,整个概念在性能方面看起来很好,还是有更好的解决方案?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-12 21:53:55

mxGetFieldmxSetField开始,然后从那里跟踪文档...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14830772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档