matlab的命令编辑窗口(Command Window)界面主要是用来调用系统命令、调用自定义函数(m文件里定义的函数)或编写一些较小的代码。在遇到需要用到比较多的代码才能摆平的需求时,在命令编辑窗口每一行都有提示输入符号,用起来不是很方便(如前所述而且命令编辑窗口主要是用来调用命令之用),此时我们不得不求助于matlab的m文件来编写代码。所以,记录一下经自行探索其编写方式后的入门过程:
版本:MATLAB 7.9.0(R2009b)
1.新建m文件
打开matlab软件-->file-->new-->Function m-file
经过此步骤之后,matlab会弹出一个新的编辑窗口,并生成少许代码如下:
function [ output_args ] = Untitled( input_args )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
end
这些代码是一个m-函数的模板。
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强大的库函数已经可以做很多事情了,起码做作业没问题了撒,用龙格-库塔解线性方程组时用上面之所列举足矣(加点数组定义法)。
Matlab Note Over。