程序
程序设计的而基本步骤
Matlab中程序文件的扩展名为.m,因为程序文件也称为M文件
程序文件分为脚本文件和函数文件
脚本文件和函数文件都是一个文本文件,可以用任何文本编辑程序来建立和编辑,默认使用Matlab编辑器
启动Matlab编辑器的方法:
edit命令创建文件
>> edit test # 在当前文件夹下,创建了一个test.m的文件
数据输入
A = input(提示信息,选项);
数据输出
disp(输出项) 示例 >> s='Hello World' >> disp(s) Hello World
程序的暂停
pause(延迟秒数)
若要强行终止程序的运行可使用Ctrl+C 命令
语句格式:
if 条件 语句组 end
说明:
语句格式:
if 条件 语句组1 else 语句组2 end
语句格式:
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组n end
语句格式:
说明:
switch表达式应该是一个其值可以列举的表达式
case结果表为switch表达式的取值,当取值有多个时,用单元数据表示。
for 循环变量=表达式1:表达式2:表达式3 # 循环变量为标量 循环体语句 end
示例一:
for k =[1,3,2,5] k end
说明:
1.for语句针对向量的每一个元素执行一次循环体 2.退出循环之后,循环变量的值就是向量中最后的元素值 for k = 1:2:10 # 1 3 5 7 9 end k 3.向量为空时,循环体一次也不执行 for k = 1:-2:10 # 产生一个空向量 k end
for 循环变量 = 矩阵表达式 # 循环变量为列向量,依次将矩阵的各列元素赋给循环变量,然后执行 循环体语句 end
示例一:
>> A=[1,2,3,4] A = 1 2 3 4 >> for i = A >i >end 执行 >i = 1 >i = 2 >i = 3 >i = 4
示例二:
>> A=[1,2;3,4] >A= 1 2 3 4 >> for i = A >i >end 执行 >i = 1 3 >i = 2 4
while 条件 循环体语句end
说明:
跳出循环体,结束整个循环
结束本次循环,解这进行下一次是否执行循环的判断
function 输出形参表=函数名(输入形参表)# 使用函数文件定义一个函数 注释说明部分 函数体语句
说明:
调用格式
[输出实参表]=函数名(输入实参表)
说明:
基本格式:
函数句柄变量 = @(匿名函数输入参数)匿名函数表达式 # 函数句柄变量相当于匿名函数的别名 # 利用函数句柄可以间接调用函数 # @是创建函数句柄的运算符
示例:
>> f=@(x,y)X^2+Y^2 f= @(x,y)X^2+Y^2 >> f(3,4) # 调用匿名函数 ans = 25
函数句柄
函数句柄变量=@函数名 # 函数可为自定义函数或者内部函数 函数句柄变量=@函数表达式
示例:
>>h=@sin # 给正弦函数重新起了一个名字为 h h= @sin >>h(pi/2) ans= 1
定义:在一个函数的定义中调用了其他函数
定义:一个函数调用它自身称为函数的递归调用
递归: 把一个大型复杂问题层层转化为一个与原问题相似的规模较小的问题来求解
直接递归调用
间接递归调用
函数所传递参数数目是可调的
在调用函数时,Matlab有了两个预定义变量
nargin:记录函数输入实参的个数
nargout:记录函数输出实参的个数
定义:作用域是整个Matlab工作空间,所有的函数都可以对她进行存取和修改
定义格式:
global 变量名
示例:
# 建立函数文件wad.m funciton f=wad(x,y) global ALPHA BETA f=ALPHA*x+BETA*y; # ALPHA、BETA为 x、y的权值 # 在命令行窗口输入命令并得到输出结果 >>global ALPHA BETA >>ALPHA=1; >>BETA=2; # 命令行窗口中更改ALPHA、BETA的值,函数文件wad.m中的ALPHA、BETA的值会自动进行修改。 >>s=wad(1,2) s= 5