----------流程控制
1 条件控制
if/elseif 语句 可以有选择的运行程序块 。
switch/case 表达式是值有多个不同,有多个选择的时候。
编辑器
function myfun1(x)
if x<=0
disp('x<=0.')
elseif x<=10 %否则如果
disp('x>0 && x<=10.')
else %否则
disp('x>10.')
end
命令行窗口测试
myfun1(3)
myfun1(13)
myfun1(-13)
注意
Matlab中大于一个数A且小于另一个数B的表示方法为:
x>A&x<B 或者 x>A&&x<B
二者的区别为:
1、单个&表示且的关系,需要同时计算 x>A和x<B两个分支,然后判断总的结果;
&&也表示且的关系,但是一旦计算出x>A为假就可直接得到整个表达式为假,从而不再计算x<B分支。
2、单个&运算时,A、B可以为标量数值或者矩阵,而&&只能对标量数值进行计算。
矩阵是MATLAB中数据的基本格式。向量和标量都可以理解为矩阵。当矩阵只有一维时,就是向量,1行n列的矩阵称为行向量,m行1列的矩阵称为列向量,1行1列的矩阵称为标量(就是单独的一个数)
function myfun2(method)
switch(method)
case 'linear'
disp('方法为线性方法')
case 'cubic'
disp('方法为三次方法')
end
测试
myfun2('cubic')
区别
能使用switch/case 尽量使用,更好读,可以比较不同长度的字符串。只能测试相等性匹配
if/elseif 可读性没有上面的好,比较字符串的话要使用strcmp函数。不仅能测试相等性还能测试不等性。
2循环(重复执行)控制
for 循环 : 指定次数的循环
while 循环 :一直执行直到不满足条件为止。循环次数是不确定
function f=myfun3
f=0;
for i(变量)=1:10 (10次循环)
f=f+i;
end
测试
myfun3
function f=myfun4
n=0;
f=0;
while n<10 (满足这个表达式)
n=n+1;
f=f+n;
end
myfun4
循环控制:4个语句
untile ,---
3 错误控制
function myfun5
try
s=and(1,2,3); % and逻辑运算后面只能有2个
catch
error('参数过多.')
end
测试
myfun5
4 程序终止控制