Matlab编程习惯总结[材料]_matlab编程总结
Matlab编程习惯总结[材料]由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“matlab编程总结”。
好的编程习惯
为了增强程序的可读性,在if 结构体开头缩进两格或更多的空间。编程隐患
确保变量名的前三十一个字符是独一无二的,否则,MATLAB 将辨认不出两变量的不 同。编程隐患
如果变量名与MATLAB 中的函数或命令重名,那么这个函数或命令将不能被访问 好的编程习惯
给你的变量起一个描述性的且易于记忆的变量名。例如,货币汇率可以exchange_rate 为变量名。这种方法将使得你的程序更加明确且易于理解。好的编程习惯
在每次用到一个变量时,我们要确保变量名的大小写的精确匹配。在变量名中只使用
小写字母是一个好的编程习惯。好的编程习惯
在MATLAB 赋值语句后加上一个分号来禁止变量值在命令窗口(The Command Windows)的重复。这将大大提高编译的速度。好的编程习惯 如果你在调试程序时需要检测一个语句的结果,可能把句后的分号去掉,这样结果将
会出现在命令窗口(The Command Windows)。编程隐患
不要重定义有意义的预定义变量。否则将后患无穷,制造成出小而难以发现的错误。编程隐患
fprintf 函数只能复数的实部,所以在有复数参加或产生的计算中,可能产生错误的结 果。好的编程习惯
如果数据需要在MATLAB 和其他程序之间交换使用,那么以ASCII 格式存储数据。
如果只在MATLAB 中使用那么,应以mat 文件的形式存储数据。好的编程习惯
以“dat”的扩展名保存ASCII 数据文件,以区别于以“mat”为扩展名的mat 文件。编程隐患
在你的MATLAB 代码中,仔细区分数组运算和矩阵运算。数组乘法和矩阵乘法极易混 淆。好的编程习惯 当你读取和写入数据时,使用适当的单位
自上而下的编程方法是我们正规编程设计的基础。1.清晰地陈述你所要解决的问题
编写的程序大多数情况下要满足一些感觉上的需要,但这种需要不一定能够被人清晰地
表达出来。例如,用户需要一个解线性方程组的表达式。像这样的要求就不够清楚,程序员
就很难编出一个使他满意的程序。他必须弄清楚要有多少问题需要解决?在这些方程式中有
没有对称的形式使我们的开发变得简单?程序设计者必须和使用者讨论所需的程序,他们必
须要对完成的任务有一个精确细致的描述。对问题清晰的描述可以防止误解,并且能够帮助
程序员合理的组织他的思想。上面的例子对问题合适的陈述应为: 设计一个用于解决联立线性方程组的程序,这些方程中未知数的系数为实数,最多有 20 个未知数。
2.定义程序所需的输入量和程序所产生的输出量
指定输入量和输出量,只有这样新的程序才能适应全过程计划。在这个例子中方程式的系数可能有其预先存在的顺序,我们的新程序必须能按照顺序读取它们。相似地,也需要产 生出这个程序所要求的结果,即输出量,我们还要以一定的格式打印出来。
3.设计你的程序得以实现的算法
算法是指为某个问题找到答案一步接一步的程序。在这个阶段自上而下的编程方法发挥
了作用。编程设计者开始对这个问题进行逻辑划分,把它逐步分解为一个又一个子工作。这
个过程叫做分解(decomposition)。如果一些子工作还是比较大,设计者还可以把他它分解成更小的块。这个过程将会继续到问题被分解成许多简单且易理解的小块为止。
在问题被分解成小块之后,每一个小块要被进一步的求精,这个过程叫做逐步求精
(stepwise refinement)。在这个过程中,设计者开始于对本小块代码总括性的描述,然后开始
一步一步地定义所需的函数,越来越具体,直到他能够转化为MATLAB 语句。逐步求精的过程中,我们要用到的伪代码将会在下节为大家介绍。
在算法开发过程中,这个方法是非常有用的。如果设计者真正理解了解决问题这个些步
骤,他将会对问题进行分解和逐步求精。4.把算法转化为代码 如果分解和逐步求精的过程已经顺利完成,那么这一步将会异常地简单。所有程序员都
会将伪代码一句一句地转化为合适地MATLAB 语句。5 检测产生的MATLAB 程序
这一步是真正的拦路虎。首先,程序的每一部分将会被单独地检测,如果有可能的话,整个程序还要被检测一遍。在我们检测程序时,我们必须证明所有合法输入数据值都能够正
常运行。用标准的输入值检测程序,看它是否产生了值。如果在一个程序中执行的算法包含
了不同的分支,你必须检测每一个分支,以保证产生正确的答案。大程序在交付大众使用之
前,必须经过一系列地检测(图3.2)。检测的第一步有时被称为单元检测(unit testing)。在单
元检测过程中,程序的子程序将会被独立地检测以证明它的正确性。当单元检测结束之后,这个程序将进行一系列的组合,把独立的子程序联合产生出最后的程序。程序第一步的联合通常只包括很少的子程序。通过组合这些子程序,经常用检查子程序或函数之间的联系。在一系列地组合过程中,越来越多的子程序被加了进来,直到整个程序的完成。在每一次组合 的过程中,每一个错误都会被发现并在进行下一次组合之前纠正过来。好的编程习惯
在我们检测两数值是否相等时一定要小心,因为round off 错误可能会使两个本来应该
相等的值不相等了。这时你可以在round off 错误的范围内它是不是近似相等。好的编程习惯
if 结构体经常缩进2 到3 个空格,以增强程序的可读性。好的编程习惯
对于有许多选项的选择结构来说,最好在一个if 结构中使用多个elseif 语句,尽量不用 if 的嵌套结构。好的编程习惯
对于for 循环体总是要缩进两个或更多空格,以增强程序的可读性。好的编程习惯
在循环执行开始之前,总是要预先分配一个数组,这样能大大增加循环运行的速度。好的编程习惯
那种既可以用向量可以解决的问题,也可以用循环解决的问题,最好用向量解决,这
是因为向量执行的速度快。好的编程习惯
把大的程序分解成函数,有很多的好处,例如,程序部分的独立检测,代码的可复用
性,避免意想不到的错误。好的编程习惯
最是把全局变量声明在函数的开头,这样可以区别于本地变量。好的编程习惯
在函数中的初始注释行之后和第一个可执行性语句之前声明全局变量。好的编程习惯
在两次函数调用之间有持久内存保存本地数据。好的编程习惯
用子函数或私有函数来隐藏特殊目的的函数,这些隐藏的函数只能被其他函数调用。
隐藏这些函数防止了它们偶然的使用,也能防止与其他公共函数重名时发生的冲突。编程隐患
当我们应用关系运算符对复数运算时,一定要小心。关系运算符>,=只比较
复数的实部,而不是它们的模。如果你要用这些关系运算符对一复数进行运算,比较两复 数的模将更加常见。好的编程习惯
用char 函数创建二维字符数组,我们就不用担心每一行的长度不相同了。好的编程习惯
当你访问一单元阵列时,不要把()与{}混淆。它们完全不同的运算。编程隐患
不要创建一个与已存在的数字数组重名的元阵列。如果得名了,MATLAB 会认为你把
单元阵列的内容赋值给一个普通的数组,这将会产生一个错误信息。在创建单元阵列之前,确保同名的数字数字数组已经被删除。编程隐患
应用函数text 从ascii 文件中按行格式读取数据,这个ascii 文件可能是其他语言生成的,或是由其他的应用程序生成的,例如表格。好的编程习惯
除非我们必须与非MATLAB 程序进行数据交换,存储和加载文件时,都应用mat 文
件格式。这种格式是高效的且移植性强,它保存了所有MATLAB 数据类型的细节。好的编程习惯
对于那些必须进行人工检查的数据,或对于那些必须在不同的计算机上运行的数据,用格式化文件创建数据。对于那些不需要进行人工检查的数据且在相同类型的计算机创建
并运行的数据,用无格式文件创建数据,当I/O 速度缓慢时,用格式化文件创建数组。