一、适当了解一些数值计算、数值分析以及最优化的理论算法
用Matlab的无非是作数值计算或者最优化,这也是Matlab的强项,Matlab有足够多的工具箱解决这些问题。可是在使用这些工具箱以前,应该首先了解一些数值计算以及最优化的理论。这一点在程序碰到问题或者计算结果不理想的时候尤其重要。不少时候结果不理想并非本身的理论出了问题,而是盲目或者错误使用Matlab的工具箱而致使的。好比我曾经作过一个单纯形法的优化程序,可是结果老是不理想,这个时候就要返回到单纯形法具体是一种什么样的算法来考虑这个问题,最后发现是因为目标函数的某一部分十分平缓致使的。 固然更重要的是若是你不理解理论,不少问题根本不知道如何处理。有个学化学同窗就曾问我一个程序怎么写,说matlab确定能够完成的。了解清楚以后才明白原来他想作的就是一个受限最小二乘。可是他不懂得什么是最小二乘(由于没怎么学过数学),固然面对这个问题无从下手。编程
二、理解Matlab中时间空间的转化编辑器
这个问题没有人强调,但我觉着蛮重要。这里的关键点其实很简单,就是尽可能减小重复计算,哪怕是多项式复杂度之内的计算。重复计算的内容应该适时保存到内存中,之后直接调用。一个程序可能会重复运行几千次几万次,一点点的浪费时间均可能被放大不少。空间(内存)咱们是能够扩充的,可是时间不是,因此绝大多数时候咱们须要放弃空间,得到时间上的迅捷。模块化
三、造成良好的编程规范函数
我想几乎全部学过编程的人都被这样告诫过。比较好的是Matlab自带的编辑器自己就能够自动缩进之类的,程序十分易读。可是还有一些东西是有些人未曾注意过的。好比变量名,一个好的变量名必定要有清晰的含义,让人一看就能明白,不然往后的修改维护必然要花费更多的时间去识别这些变量名的含义工具
四、若是拿到一个任务而又没有思路,试着把问题分解或者转化。优化
之因此叫作程序,是由于咱们所作的工做就是告诉计算机要作什么,该怎么作。因此若是你的脑子里根本不知道这个问题该怎么解决的时候,你就更加没法写出程序。找思路的通常方法是分解问题,而后逐个击破。或者在特殊状况下,须要把问题转化。spa
分解与转化的第一步是把实际问题转化为数学问题。这一步可能已经作好,可能没有。若是没有,那么这一步就叫作数学建模。绝大多数问题均可以转化为两类问题,一类是最优化问题,一类是求解问题。若是你能知道你在最优化什么东西或者求解什么东西,问题就简单不少debug
五、若是程序出错了,而又查不到语法的错误,使用断点内存
编程中最可怕的错误不是语法,而是逻辑错误,由于逻辑错误是最难debug的。一个颇有用的工具就是断点。
六、若是试了不少办法仍是不能找到错误,那就尝试一下终极debug方法,适用于各类语言 真的有这么强大的debug方法么?有的!这个方法很简单,离开你的电脑,找一我的,随便什么人,说一遍你的程序的思路,说的越具体越好。多数状况下,你在阐述的过程当中,程序的错误就会忽然从你的大脑里冒出来了。
七、理解通用与专用之间的权衡
你能够写一个通用的程序,也能够写一个专用的程序,这须要你的权衡。通常状况下,专用的程序你能够研究清楚其结构,从而找到最快的算法,而通用的程序则不能达到这点,由于要考虑到不少不少特殊的状况。
八、尽可能使你的程序更通用
也就是说,尽可能使你的代码能被重复利用。这样能够节省不少写程序的时间,而你发现这些东西都是你写过不少遍的。
九、尽可能使你的程序模块化
把须要重复进行的程序尽可能写成函数,便于修改和维护。写成函数的好处是使你在同一时间只关注一个问题,可是若是你把全部的东西都放在一个程序里,你可能须要考虑的问题就不止一个了。
郑州看不孕不育哪家医院好http://byby.zztjyiyuan.com/
郑州不孕不育专业医院http://byby.zzchfk.com/
郑州不孕不育医院http://byby.zztj120.com/