例17:利用for循环求1?100的整数之和。 解:(1). 建立命令文件exam1.m。
%利用for循环求1~100的整数之和 sum=0; for i=1:100
sum=sum+i; end sum
(2) 执行命令文件exam1.m。 exam1↙
例18:利用for循环找出100~200 之间的所有素数。 解: (1).建立命令文件exam2.m。
%利用for循环找出100~200 之间的所有素数 disp('100~200 之间的所有素数为:') for m=100:200
k=fix(sqrt(m)); %求m的算术平方根然后取整. for i=2:k+1
if rem(m,i)==0 %求整数m与i的余数 break; end end if i>=k+1
disp(int2str(m)) %以字符串的形式显示素数. end end
(2) 执行命令文件exam2.m。
? while循环
while 逻辑表达式 循环体语句 end
例19:利用while循环来计算1!+2!+?+50!的值。 解: (1).建立命令文件exam3.m
%利用while循环来计算1!+2!+...+50!的值 sum=0; i=1; while i<51 prd=1; j=1;
while j<=i prd=prd*j; j=j+1; end
sum=sum+prd; i=i+1; end
disp(‘1!+2!+...+50!的和为:’) sum
(2) 执行命令文件exam3.m
? if-else-end分支 (1)
if 逻辑表达式
执行语句
end
功能: 如果表达式的值为真,就执行语句,否则执行end后面的语句.
(2) if 逻辑表达式
执行语句1 else 执行语句2 end
功能:如果表达式的值为真,就执行语句1,否则执行语句2.
(3) if 逻辑表达式1
执行语句1 elseif 逻辑表达式2 执行语句2 else 语句n end
功能:如果表达式1的值为真,就执行语句1,然后跳出if执行语句;否则判
断表达式2,如果表达式2的值为真,就执行语句2,然后跳出if执行语句.否则依此类推,一直进行下去.如果所有的表达式的值都为假,就执行end后面的语句.
例19:编一函数计算函数值:
xx?1???2x?11?x?10f(x)???3x?1110?x?30?sinx?lnxx?30?
解: (1).建立M函数文件yx.m。
function y=yx(x)
if x<1 y=x
elseif x>=1 & x<=10 y=2*x-1
elseif x>10 & x<=30 y=3*x-11
else
y=sin(x)+log(x) end
(2).调用M函数文件计算f(0.2),f(2),f(30),f(10?)。 result=[yx(0.2),yx(2),yx(30),yx(10*pi)]↙
? switch-case-end分支 switch 表达式 case 常量表达式1 语句块1 case 常量表达式2 语句块2
case {常量表达式n,常量表达式n+1,?} 语句块n
otherwise
语句块n+1
end
功能:switch语句后面的表达式可以为任何类型;每个case后面的常量表达式可以是多个,也可以是不同类型;与if语句不同的是,各个case 和otherwise 语句出现的先后顺序不会影响程序运行的结果。
例20: 编一个转换成绩等级的函数文件,其中成绩等级转换标准为考试成绩分数在[90,100]分显示优秀;在[80,90)分显示良好;在[60,80)分显示及格;在[0,60)分显示不及格。 解:(1).建立M函数文件ff.m function result=ff(x)
n=fix(x/10); switch n case {9,10} disp('优秀')
case 8
disp('良好') case {6,7} disp('及格') otherwise
disp('不及格') end
(2).调用M函数文件判断99分,56分,72分各属于哪个范围.。
ff(99) ↙ %优秀 ff(56) ↙ %不及格 ff(72) ↙ %及格
十、 Matlab绘图
1.plot(y)
功能: 画一条或多条折线图。其中y是数值向量或数值矩阵。
说明:当y是数值向量时,plot(y)在坐标系中顺序的用直线段连接顶点(i,y(i))画出一条折线图;当y是数值矩阵时,Matlab为矩阵的每一列画出一条折线,绘图时,以矩阵y每列元素的相应行下标值为横坐标,以y的元素为纵坐标绘制的连线图。
例21:画出向量[1,3,2,9,0.5]折线图。
解: y=[1,3,2,9,0.5]; ↙
plot(y) ↙
2. plot(x,y)
功能:画一条或多条折线图。其中x可以是长度为n的数值向量或是n?m的数值矩阵,y 也可以是长度为n的数值向量或是n?m的数值矩阵。 说明:
?当x ,y 都是长度为n的数值向量时,plot(x,y)在坐标系中顺序的用直线段连接顶点(x(i),y(i))画出一条折线图;