5707|1

97

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于matlab编程设计的一点心得,指导性很强 [复制链接]

从事科研过程中,难免需要用到matlab软件进行科学计算和仿真模拟。良好的编程习惯有利于缩短程序设计调试的时间,从而加快科研的进度。在编写若干程序之后,把我的个人心得总结如下:  
1.         要有明确的逻辑再动手写
之前有过一次经历,感觉程序逻辑差不多了,就开始动手写程序。结果用了5个全局的表来存储信息,当工作进行到中期以后,发现维护这个表的一致性已经让人崩溃掉,最后全部代码推倒重来。软件工程绝不是在课堂上能学明白的东西,没有几次重写代码的经历是不会理解其中的奥义的。
2.         不怕声明的变量多,就怕变量没有明确的含义
以前写代码写着写着就不记得哪个数据存储在哪个变量里了,这样就希望尽量少的使用变量,可是这样写的时候容易了,但是如果需要修改,比如增加一部分功能,这样的结果会使得前后逻辑混乱,经常需要判断某个变量在不同的上下文中的含义是否一致,如果不一致就需要进行变量替换,工作量不亚于重写!
3.         容错处理要到位,尽早发现错误,不要怕程序效率低(否则更低:()
曾经在调试完一个模块后就把错误判定的代码删除或者屏蔽,目的是提高程序效率,并且避免大量的调试信息“淹没”新写的代码的输出信息。后来发现这样是错误的,因为我们很难对一段代码进行全面的测试,其中可能含有一些隐含错误,比如边界情况下的错误或者特定组合出现的错误,如果删除容错处理,在我们认为“正确”的模块中出现了bug,则调试开销极大,很有可能为了调试这样的bug我们把这些容错代码重写回来!
4.         每个m文件不要超过300行
这是经验之谈,当程序的逻辑不能在一个屏幕显示(就是代码的关联需要卷动才能看出来)的时候,一般正常人的智商无法处理每个细节,就容易犯错
5.         循环不要超过2层,至多4层
同样是为了简化逻辑,那如果非要处理很多层循环怎么办?我的建议是多谢一些函数,每个函数2层循环。
6.         永远不要用隐式变量声明或初值
变量使用前永远显示的声明并赋初值,否则由于变量残留的信息有可能使得矩阵操作失败,因为维数不正确
7.         向量要先清空在填入数据,否则容易残留上一次的数据
如题,不解释
8.         所有的函数最好是可重入的
可重入就是函数的调用没有状态依赖。如果必须有依赖,把维护状态的代码单独出来,然后用当前状态作为函数的一个输入参数
9.         程序逻辑尽量简单,把问题分解成若干步骤,即使牺牲效率
很多问题合并若干步骤以后可以提高效率,但是严重不建议这么做,这样对程序修改将十分吃力。但是影响全局效率的核心函数除外,这些函数的优化往往可以使程序提高3-10倍效率,而这种函数又有明确的含义,较少修改。
以上就是一点心得,不凑10条了,希望对大家有帮助

最新回复

呵呵 最近利用matlab做算法仿真 受益匪浅  详情 回复 发表于 2010-1-22 17:32
点赞 关注(1)
 

回复
举报

5979

帖子

8

TA的资源

版主

沙发
 
呵呵 最近利用matlab做算法仿真 受益匪浅
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表