第四章 MATLAB程序设计

  • 格式:ppt
  • 大小:1.83 MB
  • 文档页数:73

下载文档原格式

  / 73
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
给键盘。输入return并回车 后继续程序执行;

提示符前面显示k,即由>>
变为K>>;
第一节 数据的输入输出
1.4 disp函数
调用格式为 disp(输出项)
其中输出项既可以为字符串,也可以为矩阵。
注意:用disp函数显示矩阵时将不显示矩阵的名字,而且 其格式更紧密,且不留任何没有意义的空行。 如:>>disp(„Wang Fang‟) >>disp([1, 2; 3, 4])
程序1: if x==10
cos( x 1) x2 1 y x x x
x=10 x 10
x=input('请输入x的值:x='); y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x)); end
y
实例分析 程序2: x=input('输入x='); if x==10
实例分析
第三节 循环结构
for语句更一般的格式: for 循环变量 = 矩阵表达式 循环体语句
end
实例分析 例4.12 已知5个学生4门功课的成绩,求每名学生的总成绩。
s=0;
a=[65,76,56,78;98,83,74,85; ... 76,67,78,79;98,58,42,73; ...
(提示:运用所学分析如何判断是整数)
第二节 选择结构
2、双分支if语句 语句格式为: if 条件 语句组1 else 语句组2 end
if-else的执行方式为:如果逻辑表达式的值 为真,则执行语句1,然后跳过语句2,向 下执行;如果为假,则执行语句2,然后向 下执行。
实例分析
例4.5 计算分段函数值
其调用格式为:
pause(延迟秒数)
• •
将使程序暂停n秒; 如果省略延迟时间,直接使用pause,则将暂停程序, 直到用户按任一键后程序继续执行;

若要强行中止程序的运行可使用Ctrl+C命令。
第一节 数据的输入输出
1.3 keyboard函数
其调用格式为: keyboard

停止程序执行,把控制权交
第二节 选择结构
2.3 try语句
语句格式为:
try 语句组1 catch 语句组2
end
try语句试探性执行语句组。这种试探性执行语句是其 他高级语言所没有的。
实例分析 例4.9 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先 求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。 A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12]; try C=A*B; catch
y
实例分析
例4.11 求
ye
0.5 x
sin( x

6
)
定积分。
a=0;b=3*pi;n=1000; h=(b-a)/n; x=a:h:b; f=exp(-0.5*x).*sin(x+pi/6);
for i=1:n
s(i)= (f(i)+f(i+1))*h/2; end s=sum(s)
可直接调用函数trapz(),求数值积分!
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else if-elseif的执行方式为:如果逻辑表达式1 的值为真,则执行语句1;如果为假,则判 语句组m+1 断逻辑表达式2,如果为真,则执行语句2, end 否则向下执行。
3、多分支if语句
实例分析
实例分析
1 例4.10 已知 y 2 i 1 i
n
,当n=100时,求y的值。 在实际MATLAB编程中,为提 高程序的执行速度,常用向量 运算来代替循环操作: n=100; i=1:n; f=1./i.^2; y=sum(f)
y=0;
n=100; for i=1:n y=y+1/i/i; end
第二节 选择结构 其语句格式为: switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 …… case 表达式m 执行方式:表达式的值和哪种情况(case) 语句组m 的值相同,就执行哪种情况中的语句;如 果不同,则执行otherwise中的语句;格式 otherwise 中也可以不包括otherwise,这时如果表达 语句组m+1 式的值与列出的各种情况都不相同,则继 end
67,89,76,87];
for k=a s=s+k; end disp(s');
第三节 循环结构
3.2 while语句
while语句的一般格式为:
while (条件)
循环体语句 end
其执行过程为:若条件成立,则执行循环体语句,执行后 再判断条件是否成立,如果不成立则跳出循环体,向下继 续执行。
MATLAB及其在理工课程中 的应用指南
CH4、MATLAB程序设计
1、数据的输入输出 2、选择结构
3、循环结构
4、函数文件
5、全局变量和局部变量
6、M文件
本章简介
了解MATLAB的程序设计语句
熟悉数据的输入输出
熟悉选择结构、循环结构以及函数文件的建立和调用
重点掌握if/switch,for/while,function命令
输入所售商品的价格,求其实际销售价格。
实例分析
price=input('请输入商品价格='); switch fix(price/100) case {0,1} %价格小于200 rate=0; case {2,3,4} %价格大于等于200但小于500 rate=3/100; case num2cell(5:9) %价格大于等于500但小于1000 rate=5/100; case num2cell(10:24) %价格大于等于1000但小于2500 rate=8/100; case num2cell(25:49) %价格大于等于2500但小于5000 rate=10/100; otherwise %价格大于等于5000 rate=14/100; end price=price*(1-rate) %输出商品实际销售价格
>> a=[1,2,1]; >> roots(a) >> poly2sym(a)
b=input('b=');
c=input('c='); d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=', num2str(x(1)),'x2=', num2str(x(2))]);
第一节 数据的输入输出
1.6 sprintf 函数
调用格式为 [s,errmsg]= sprintf(format,A,...)
按格式生成字符串
format, A------同fprintf()
程序设计
程序设计结构
顺序结构
选择结构
循环结构
顺序结构
实例分析
例4.3 求一元二次方程ax2+bx+c=0的根? a=input('a=');
while循环和for循环的区别:while循环结构的循环体被执行的 次数不是确定的,而for结构中循环体的执行次数是确定的。
实例分析
例4.13 求a=1+2+…+100,b=1/i (i=1~10) >> for I=1:10 >> sum=0; A(I)=1/(I+1) ; end >> i=0; >> A >> while(i<=100)
第一节 数据的输入输出
1.5 fprintf函数
调用格式为 COUNT=fprintf(FID, FORMAT, A, ...)
Format: Character Description \b Backspace \n New line \t Horizontal tab %% Percent character A: conversion characters d, f, s , c, …
续向下执行。
2.2 switch语句
实例分析 例4.8 某商场对顾客所购买的商品实行打折销售,已知打折标 准,求所售商品的实际销售价格。
商品价格用price来表示:
price<200 200≤price<500 500≤price<1000 1000≤price<2500 2500≤price<5000 5000≤price 没有折扣 3%折扣 5%折扣 8%折扣 10%折扣 14%折扣
实例分析 例4.7 输入一个字符,若为大写字母,则输出其后继字符; 若为小写字母,则输出其前导字符;若为数字字符,则输出 其对应的数值;若为其他字符则原样输出。
c=input('请输入一个字符=','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+1)); %setstr等同char elseif c>='a'& c<='z' disp(setstr(abs(c)-1)); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end
例4.1 用input命令输入一个人的姓名
a=input('What is your name? \nname='); a=input('What is your name? \nname=','s');
echo on/off:控制是否在屏幕上显示程序内容
第一节 数据的输入输出
1.2 pause函数
实例分析
例4.2 文件输出
>>x = 0:.1:1; y = [x; exp(x)];
>>fid = fopen(„exp.txt‟,„w‟); %只写 >>fprintf(fid,'%6.2f %12.8f\n',y); >>fclose(fid); >>type exp.txt
>>fprintfHale Waihona Puke Baidu'%s\n', '123');
sum=sum+i; i=i+1; end >> sum sum = 5050
第三节 循环结构
其它与流程控制有关的语句
break语句循环结构
continue 语句循环结构
第三节 循环结构
break语句:导致包含该指令的循环强制终止,即跳 出所在的一级循环。该语句一般与if语句配合使用
continue语句:跳过位于其后的其它指令,执行循环 的下一次迭代循环
程序3:
x=input('输入x='); y=cos(x+1)+sqrt(x*x+1);
u=cos(x+1);
v= sqrt(x*x+1); y=u+v end if x~=10
if x~=10
y=x*sqrt(x+sqrt(x));
end
y
y=x*sqrt(x+sqrt(x))
end
第二节 选择结构
第一节 数据的输入输出
1.1 input函数
调用格式为:
A=input(提示信息,选项) ;
提示信息:为''字符串,作为提示符,提示用户输入,等
待使用者输入一个响应,然后把它赋值到A
选项:无,默认输入为数值;
用's',则允许用户输入一个字符串; 无,输入字符时要把字符放在''内。
实例分析
C=A.*B;
end C
lasterr
%显示最后一个出错信息
第三节 循环结构
3.1 for语句
语句格式为: for 循环变量=表达 式1:表达式2:表达 式3
循环体语句
end
第三节 循环结构
for 循环变量=起始值:步长:终止值 循环体 end 步长缺省值为1,可以在正实数或负实数范围内任意指定。 对于正数,循环变量的值大于终止值时,循环结束;对于负 数,循环变量的值小于终止值时,循环结束。循环结构可以 嵌套使用。 书写格式不必太过于拘泥,在Editor编辑器中会自动进行处 理。
2 x2 1 x 1 y 0 1 x 1 x3 x 1
例4.6 计算分段函数的数值
>> x=input('请输入x='); >> if x>=1 y=2*x.^2+1; elseif -1<x&x<1 y=0; else y=-x.^3; end
>> x=input('请输入x='); >> if x>=1 y=2*x.^2+1; else if -1<x&x<1 y=0; else y=-x.^3; end end
第二节 选择结构
2.1 if 语句
在MATLAB中,if 语句有三种格式
1、单分支if 语句
语句格式为: if 条件 语句组 end 当逻辑表达式的值为真时,执行该结 构中的执行语句,执行完之后继续向 下进行;若为假,则跳过结构中的内 容,向下执行。
实例分析
例4.4 当x是整数矩阵时,输出x的值。