标签:
项目管理包文件夹类 |
分类: Matlab |
最近有个优化设计的作业,编了30多个文件,如果放在一个文件夹,看起来很不方便,可读性也不强,虽然可以用matlab的Dependency Report产生文件的依赖关系表,但文件多了,看起来也头大啊,如下
是不是很混乱。。。编的时候可能还很清楚,过一阵了想再回顾一下,谁会有心思看?
最近看了不少有关matlab组织项目的东西,前面写的几篇博客里也介绍了,如包文件夹、private文件夹等,还有matlab的代码仓库管理,都知道SVN代码仓库,突然发现matlab也有,不过是和VSS联合的,具体使用方法可以在帮助中搜Source Control Interface找到,如果安装好了,就可以使用Current Folder里的Source Control了。有时间可以尝试一下。
现在用看到的matlab组织项目的方法整理了编写的程序,秀一下
是不是很整齐,main函数里在开始时导入上面的包,就可以正常使用了
。。。
%% 导入算法库
import GJInterface.f.*
import GJInterface.ODS.*
import GJInterface.UO.*
%% 各算法运行测试
funcnum = 3;
uonum = 6;
odsnum = 3;
ODSmethod = [1, 6, 7]; % 选择黄金分割法、三次插值法和非精确搜索算法三种一维搜索算法
x = cell(funcnum, uonum, odsnum);
y = zeros(funcnum, uonum, odsnum);
itercount = zeros(funcnum, uonum, odsnum);
itertime = zeros(funcnum, uonum, odsnum);
for UONo =
1:uonum
end
。。。
还不错,函数思路清晰多了!下面写一些小结吧:
包文件夹内的文件之间不能互相调用,即包文件内的文件只是提供了包的接口,如果要调用其他文件,可以把它们放到private文件夹中;
一个包调用另一个包时,常常会带来麻烦,因为需要在每个调用另一个包的函数里都要import一下,如果突然想修改那个包的名字,那么就要相应修改很多东西。所以感觉matlab的包封装比较适合最后的程序发布。另外有一个解决办法是在包内先建立一个函数,这个函数把要在包内调用的另一个包内的函数进行封转,这样只需要在这个函数内import,但是又涉及代码封装了。
曾经看到一个文章里说,用所使用语言的思维来思考问题,既然是用matlab,就要使用matlab自己的方式来解决问题,而matlab解决项目管理问题的方法就是将项目路径添加到matlab的path中,显然,这种方法有其局限性。比如我们要交作业给老师,总不能每个人都给老师的matlab添加个路径吧,而且如果重装一次电脑,就什么都没有了。。
这样看来,matlab的项目管理并不灵活,可能matlab公司认为,我提供的函数已经够多,你要完成你的代码总共也写不了几行,还涉及项目管理?哈哈,不得而知啊,不过matlab安装路径下的很多工具箱代码都是用包(+开头)、类(@开头)封装的,可能这就是matlab主推的项目管理方式吧(个人认为这个还只是适合代码发布,不适合算法代码的开发)!