欢迎光临散文网 会员登陆 & 注册

MATLAB进行程序设计如何省时高效少出错

2023-06-24 22:30 作者:大一_新生  | 我要投稿

同:https://zhuanlan.zhihu.com/p/639245203

利用MATLAB进行科研程序设计的注意点

最近利用MATLAB脚本进行了机器人相关程序的编写,因为这个经验不足,走了比较多的弯路

刚开始有了思路就埋头猛写代码,写着写着觉得差不多了,凭感觉编个函数,结果写完之后一运行结果错了!!!

然后回头一看

  • 变量命名很乱很随意,不知道这个变量是干什么的?

  • 中间过程中比较重要的变量没有进行保存,函数的输出是一些不重要的变量

  • 想要测试一下某个变量和预期符不符合,再拿出来单独写测试函数

  • 好不容易发现了某个功能的错误,修改了这个错误,结果发现还有别的地方也使用了类似的功能也错误了

  • 试探性的修改程序的错误,修改了其中一处,结果错误,然后又开始修改另一处导致最后也不知道是哪出错了

有一些感悟或者是技巧现在记录下来,希望以后可以提高编写程序的效率,减少出错的概率。

以后也会分享机器人相关方面知识,欢迎关注 Winter

前期思路

最开始的时候要构建好程序的大纲,这个是最为重要的,花的时间再多也不为过,可以用一些思维导图工具辅助

程序分几个

首先大题构建一下这个程序要干什么?想清楚之后大概考虑一下这个矩阵的运算量,对于我来说就是有一个矩阵求逆,这个矩阵求逆是比较花费时间的,所以我进行了第1个判断

这个程序并不是一个,分为两个大的程序,前一段要保存运算量大的结果,后一段再继续进行

  • 好处:因为跑那一段是相当花费时间的,如果因为操作不小心,要中断一下程序或者说不小心崩溃了,那又要重新计算,只要保存了这个结果的话,我们后续的那一段会相当快

  • 结果:我现在明确了程序的两个部分,第1部分花费时间得出最重要的结果,第2部分只要对结果进行一些画图处理就行

调用函数设计

有了程序就必须要确定调用的函数,函数的划分要注意以下几个点

1.考虑功能划分:对于如何划分函数?其中的一个因素就是根据功能来划分,要想清楚程序过程中功能复用性比较高的部分,把这一部分包装成函数

  • 好处1:程序易于阅读,这肯定不必多讲

  • 好处2:一旦你发现这个函数有任何的错误,你只需要修改这个函数,如果你有一个类似的功能,但被你划分成两个函数,那你一旦这个功能出现错误,你两个函数都要改,有时候你会出现,只修改一个而忘记修改另一个的情况

2. 考虑端口(输入输出)划分:我们在设计函数的时候,最重要的考虑的是它的输入和输出分别是什么,那我们就要针对重要的输入输出进行函数设计

  • 注意:如果函数过小,那么函数的数量就会比较多,中间会有一些不重要的变量干扰阅读

  • 好处:合适的端口划分,会使得你输出的变量是容易用来测试是否正确的,

  • 测试:写完这个程序,我们就要对这个程序进行测试,因为后面还会用到这个程序,如果错了的话会引发一连串的错误,而如果这个函数正确的话,我们就可以放心的使用它,在它的基础上再包装其他的函数

3. 设计好函数功能接下来,进行命名->编写->测试->拼接->完成主程序

变量、函数命名

  • 这个命名要符合他物理的含义,就是你看到名字就能知道他是干什么的

  • 对于变量和函数这两个命名要区分开,可以使用首字母大写来进行变量内容,利用下划线分割来命名函数

最后的小tips

  • 当你分了两个或者多个执行程序之后,就意味着这个执行程序需要跟前面后面进行交互,那么就会输入输出变量进行保存,这个输入输出变量要放在程序的最开始和最结尾,不要在中间或者说函数的里面load加载一个变量,如果上一个程序的输出变量需要更改的话,你还需要进入到这个程序或者函数的里面去改这个变量很麻烦

  • 进行中间小变量的输出,有利于查看问题出在哪里

  • 单独有一个测试模块,对前面每写一个函数都要进行测试功能是否符合预期

  • 注意版本更新,对于我没有必要用github的版本迭代,我会每次准备改都备份一下,然后写一个记事本,这次的版本特点,然后下一次打算进行哪方面的更改

如果你有哪些编程方面走的弯路然后得到了哪些小技巧,欢迎评论分享


MATLAB进行程序设计如何省时高效少出错的评论 (共 条)

分享到微博请遵守国家法律