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

matlab编译的m文件如何实现模块化

[复制链接]
发表于 2010-12-6 14:22:37 | 显示全部楼层 |阅读模式 来自 浙江杭州
众所周之,fortran语言中有module模块,可以把程序变成一个个小的模块,那么matlab中怎么把编译的m文件中代码也模块化,这样的化可移植性比较好了,有的语句不需要每次都输入,怎样把它变成模块。当编译大型程序时可以直接拿来该模块使用,这样节省时间了,请指教,谢谢!
发表于 2010-12-6 14:29:03 | 显示全部楼层 来自 河北廊坊
Simdroid开发平台
太抽象了,能不能说的具体点啊
回复 不支持

使用道具 举报

 楼主| 发表于 2010-12-6 14:52:43 | 显示全部楼层 来自 浙江杭州
就是一个主程序分解成很多子程序,这些子程序可以被别的程序调用!
回复 不支持

使用道具 举报

发表于 2010-12-6 19:04:04 | 显示全部楼层 来自 江苏南京
m文件不就是一个个的子程序么

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-12-6 21:25:45 | 显示全部楼层 来自 浙江杭州
众所周之,fortran语言中有module模块,可以把程序变成一个个小的模块,那么matlab中怎么把编译的m文件中代码也模块化,这样的化可移植性比较好了,有的语句不需要每次都输入,怎样把它变成模块。当编译大型程序时可 ...
mengxiannan 发表于 2010-12-6 14:22

参考matlab工具箱的做法,写成类的形式供调用吧,但是运行效率会下降

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-12-29 15:39:38 | 显示全部楼层 来自 华南理工大学
楼主直接写成S.m形式程序,需要时侯直接用程序调用不就行了?

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-1-1 19:01:49 | 显示全部楼层 来自 黑龙江哈尔滨
规划一下 把常用的模块写成子函数?定义好接口调用,不知道楼主是不是这个意思?
回复 不支持

使用道具 举报

发表于 2011-1-4 14:18:39 | 显示全部楼层 来自 上海
模块化编程,主要依赖于封装。封装的效果,是内聚与耦合的平衡。
对于一个小规模的软件,比如5万行以内的代码,编译成一个exe就可以了。规模达到一定的程度,就必须要进行模块化封装了。
可以将不同功能的函数放到不同的文件夹下保管。每个模块采用一个模块M文件组织起来。模块文件采用严格函数结构,以便其他模块的函数调用这个模块中的M文件。参考这篇文档:
http://forum.simwe.com/viewthrea ... ighlight=%2B%2Bcwit
其他模块调用这个模块的函数时,必须要先调用模块名,再输入函数名的方式使用。
在编译时,需要在编译的搜索路径中设置一个bin文件,并置顶。将模块同名的dll放到这个路径下,这样编译当前模块时,就不会将其他模块的m文件也编译进来。
采用模块封装的编译方式,目前验证过,可以支持百万行级的M代码。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-1-4 18:14:40 | 显示全部楼层 来自 浙江杭州
模块化编程,主要依赖于封装。封装的效果,是内聚与耦合的平衡。
对于一个小规模的软件,比如5万行以内的代码,编译成一个exe就可以了。规模达到一定的程度,就必须要进行模块化封装了。
可以将不同功能的函数放到 ...
cwit 发表于 2011-1-4 14:18

达人,看到你的文档,里面封装的时候用到了feval函数,这样的要打包成独立的exe执行程序会存在问题的吧?
回复 不支持

使用道具 举报

发表于 2011-1-4 18:47:46 | 显示全部楼层 来自 上海
eval有问题,feval没有问题。
为了能够脱离matlab,我采用的是早期的编译版本Compiler 2.1。
回复 不支持

使用道具 举报

发表于 2011-1-5 20:31:09 | 显示全部楼层 来自 浙江杭州
eval有问题,feval没有问题。
为了能够脱离matlab,我采用的是早期的编译版本Compiler 2.1。
cwit 发表于 2011-1-4 18:47

多谢,看了帮助文档,feval是运行函数句柄的,函数的输入参数是另外指定的,打包的时候应该可以自动识别并找到该函数,eval是计算Matlab表达式的字符串形式,打包程序可能还没有智能化到可以一一识别函数名与变量名的程度。
现在最新版的Maltab 2010b的MCR程序包也不大,还可以接受
btw,请问达人用过Matlab的类写过代码吗?运行的效率真有某些博客上面说的那么不堪吗?

评分

1

查看全部评分

回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 15:33 , Processed in 0.065789 second(s), 21 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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