加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

matlab项目管理小试牛刀

(2011-05-12 22:59:17)
标签:

项目

管理

包文件夹

分类: Matlab

最近有个优化设计的作业,编了30多个文件,如果放在一个文件夹,看起来很不方便,可读性也不强,虽然可以用matlab的Dependency Report产生文件的依赖关系表,但文件多了,看起来也头大啊,如下

Snap1

是不是很混乱。。。编的时候可能还很清楚,过一阵了想再回顾一下,谁会有心思看?

 

最近看了不少有关matlab组织项目的东西,前面写的几篇博客里也介绍了,如包文件夹、private文件夹等,还有matlab的代码仓库管理,都知道SVN代码仓库,突然发现matlab也有,不过是和VSS联合的,具体使用方法可以在帮助中搜Source Control Interface找到,如果安装好了,就可以使用Current Folder里的Source Control了。有时间可以尝试一下。

image

 

现在用看到的matlab组织项目的方法整理了编写的程序,秀一下

image

是不是很整齐,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                  % 6种无约束优化算法
    for ODSNo = 1:odsnum            % 3种一维搜索算法
        for FuncNo = 1:funcnum                  % 3个目标函数
           
            [x0, h0, d0, err] = getInitialValue(FuncNo);
            [xtemp, ytemp , itercounttemp, itertimetemp] ...
                = fmins(UONo, ODSmethod(ODSNo), FuncNo, x0, h0, err);
           
            x{ODSNo, UONo, FuncNo} = xtemp;
            y(ODSNo, UONo, FuncNo) = ytemp;
            itercount(ODSNo, UONo, FuncNo) = itercounttemp;
            itertime(ODSNo, UONo, FuncNo) = itertimetemp;
        end
    end
end

。。。

 

还不错,函数思路清晰多了!下面写一些小结吧:

包文件夹内的文件之间不能互相调用,即包文件内的文件只是提供了包的接口,如果要调用其他文件,可以把它们放到private文件夹中;

一个包调用另一个包时,常常会带来麻烦,因为需要在每个调用另一个包的函数里都要import一下,如果突然想修改那个包的名字,那么就要相应修改很多东西。所以感觉matlab的包封装比较适合最后的程序发布。另外有一个解决办法是在包内先建立一个函数,这个函数把要在包内调用的另一个包内的函数进行封转,这样只需要在这个函数内import,但是又涉及代码封装了。

曾经看到一个文章里说,用所使用语言的思维来思考问题,既然是用matlab,就要使用matlab自己的方式来解决问题,而matlab解决项目管理问题的方法就是将项目路径添加到matlab的path中,显然,这种方法有其局限性。比如我们要交作业给老师,总不能每个人都给老师的matlab添加个路径吧,而且如果重装一次电脑,就什么都没有了。。

这样看来,matlab的项目管理并不灵活,可能matlab公司认为,我提供的函数已经够多,你要完成你的代码总共也写不了几行,还涉及项目管理?哈哈,不得而知啊,不过matlab安装路径下的很多工具箱代码都是用包(+开头)、类(@开头)封装的,可能这就是matlab主推的项目管理方式吧(个人认为这个还只是适合代码发布,不适合算法代码的开发)!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有