matlab的命令编辑窗口(Command Window)界面主要是用来调用系统命令、调用自定义函数(m文件里定义的函数)或编写一些较小的代码。在遇到需要用到比较多的代码才能摆平的需求时,在命令编辑窗口每一行都有提示输入符号,用起来不是很方便(如前所述而且命令编辑窗口主要是用来调用命令之用),此时我们不得不求助于matlab的m文件来编写代码。所以,记录一下经自行探索其编写方式后的入门过程:
版本:MATLAB 7.9.0(R2009b)
1.新建m文件 打开matlab软件-->file-->new-->Function m-file 经过此步骤之后,matlab会弹出一个新的编辑窗口,并生成少许代码如下:
function:表示编写的是一个函数。 output_args: 表示编写此函数的返回值(不同于C语言的是需要被返回的值无需使用return语句,只要将outp_args相应的参数拿到代码中赋值即可,同一般变量的使用),各返回值间用逗号隔开。 input_args: 此函数的输入参数,各参数之间用逗号隔开。 Untitled: 这是您所编写函数时所定义的函数名。注意:函数名和m文件名需要保持一致。如刚所创建的m文件在工作空间时命名为“RungeKuttaCalculate.m”则相应的函数名也需要为“RungeKuttaCalculate”,否则会引起报错。 %: 是matlab的注释语句的注释符,相当于C语言中的行注释符"//",在这里你可以描述此函数的功能,参数含义和返回值含义,使其含义更加明确。 剩余空间:从%到最后面的end部分是编辑代码的空间。end表示此函数编辑完毕。
总结函数文件的基本结构: function [ 输出形参表:output1, output1...outptn ]=函数名 [输出函数形参表:input1, input2..., inputn] 注释说明部分 函数体代码部分 end
说明:
2.编写代码 (1)matlab数据类型 Matlab中有15种基本数据类型,主要是整型、浮点、逻辑、字符、日期和时间、结构数组、单元格数组以及函数句柄等。(http://hi.baidu.com/yicomrdztxbeiwd/item/37b3f246de294596823ae16c)一般在简单应用中用到的整形(用作循环变量)、矩阵、数组较多。 (2)matlab的流程控制语句 matlab的流程控制语句跟C语言中的语句差不多,只是使用的形式有点不同。在C语言中if, for, while等是使用"}"或者“;”(其中只包含一条语句时)来结束。在matlab中他们使用的形式如下: if语句 if 条件1 matlab语句1; 【 elseif 条件2 matlab语句2; ....... else matlab语句n;】 end end来标识if语句内的matlab语句完结,如果其中有一个逻辑条件为真则执行相应的matlab语句,否则跳过整个if语句内容执行后继语句。 【】内容为可选内容,根据需求而定。但是if....elseif必须匹配。
switch语句 switch 表达式 case 表达式1 matlab语句1 case 表达式2 matlab语句2 .... case 表达式n matlab语句n otherwise matlab语句n+1 end 跟if语句相似,用switch下面的表达式来匹配case表达式中的内容,匹配到哪一个case表达式,相应的matlab语句就会被执行。
try语句 try matlab语句1 catch matlab语句2 end try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。这种试探性执行语句是其他高级语言所没有的。 for语句 for 循环变量=初始值:步长:终值 循环体语句 end 如果初始值在付给循环变量后,循环变量的值介于初始值与终值之间则执行循环体语句,每次执行后循环变量增加步长值,再与终值比较是否小于终值,若还小于终值,则执行循环体语句,若非,则跳出for循环执行后继语句。如此循环直到跳出for循环为止。
while语句 while(条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循.
循环嵌套,个循环之间可以嵌套使用。
在m文件的函数编写中,撇开读取文件操作不谈使用基本的流程控制和matlab基本数据类型,再加上调用matlab强大的库函数已经可以做很多事情了,起码做作业没问题了撒,用龙格-库塔解线性方程组时用上面之所列举足矣(加点数组定义法)。
|
|