找回密码
 注册
Simdroid-非首页
查看: 159|回复: 4

Matlab调用Fortran程序加快求解速度

[复制链接]
发表于 2012-4-26 13:19:36 | 显示全部楼层 |阅读模式 来自 澳大利亚
悬赏50仿真币已解决
本帖最后由 kathy.han2008 于 2012-5-2 14:30 编辑

最近写了一个MEX文件,供matlab调用。在matlab中编译通过,已生成执行文件。测试之后发现,输出的结果矩阵大小正确,但都是0元素。哪位同学有过这方面经验吗?可否提示下问题可能出在哪?

最佳答案

查看完整内容

都是0元素有可能是Fortran和MATLAB间参数没有传递成功,从那些mex打头或者mx打头的函数里挑些调试的函数看看,不行就把中间结果存成文本文件看哪儿有问题。
发表于 2012-4-26 13:19:37 | 显示全部楼层 来自 北京
Simdroid开发平台
kathy.han2008 发表于 2012-5-2 14:34
谢谢提醒,感觉这样提问是不容易得到结果。所以修改了帖子,看起来能简单明了一些。 ...

都是0元素有可能是Fortran和MATLAB间参数没有传递成功,从那些mex打头或者mx打头的函数里挑些调试的函数看看,不行就把中间结果存成文本文件看哪儿有问题。
回复

使用道具 举报

发表于 2012-4-29 19:43:52 | 显示全部楼层 来自 上海长宁区
1、程序一点注释也没有,偶个人觉得这里不会有人无偿或只为50仿真币而折腾这种事情;
2、matlab的代码呢?速度慢的话,用profile查找matlab代码的热点,有针对性的优化才是事半功倍的王道!
回复

使用道具 举报

 楼主| 发表于 2012-5-2 14:34:25 | 显示全部楼层 来自 澳大利亚
pasuka 发表于 2012-4-29 19:43
1、程序一点注释也没有,偶个人觉得这里不会有人无偿或只为50仿真币而折腾这种事情;
2、matlab的代码呢? ...

谢谢提醒,感觉这样提问是不容易得到结果。所以修改了帖子,看起来能简单明了一些。
回复

使用道具 举报

发表于 2012-5-3 13:41:34 | 显示全部楼层 来自 天津
Fortran中的数据时要预先定义类型和元素个数的。都定义成double试试,赋值的时候也要注意。比如a=1;在Matlab中a视为浮点数,在Fortran中要a=1.0D0才可以。

评分

1

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 19:12 , Processed in 0.032482 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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