MATLAB程序设计基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
提示:
标点符号要运用恰当; 注意程序的书写风格,保持程序的可读性; 要以m为文件扩展名,在低版本的matlab中,文件名要符合8.3格式。
函数式M文件 function [返回变量列表]=函数名(输入变量列表) 注释说明语句段
函数体 提示:
第一行为function语句; function后定义函数名和输入输出参数,函数被调用时按
说明:
for 语句一定要有end结束标志; 循环语句中要用“;”防止中间结果的输出; 书写时采用锯齿结构以增加可读性;
求取s1的值->i
例:求 100i i 1
i在s1和s2之间?
是 循环体语句组
i+s3->i
mysum=0;
否
for i=1:1:100
结束循环
mysum=mysum+i;
while循环 while 逻辑变量 循环体语句组 end
例(见前例): mysum=0;i=1; while (i<=100) mysum=mysum+i; i=i+1; end mysum
条件为真? 是
循环体语句
否
结束 循环
条件转移结构 if 逻辑变量 条件语句组
end
例: mysum=0; for m=1:1000 if (mysum>10000), break; end mysum=mysum+m; end [m, mysum]
用户输入提示命令
input 用来提示用户从键盘输入数据、字符 串或表达式,并接收输入值。
?r=input('How many apples:') How many apples:2
r=
2
?r=input('What''s your name?','s') What's your name?Gundam
end;
mysum
for 循环的一般形式 for v=vect statements end vect为任意给定的向量,则循环变量从向量的第一个数值一 直循环到最后一个数值。
例1(见前例): mysum=0; v=1:100; for i=v;mysum=mysum+i;end mysum
例2: x=[]; for i='Hello', x=[i x]; end, x
MATLAB程序设计基础
程序设计
M文件
两种形式:命令形式(Script)
函数形式(Function)
命令式M文件在运行过程中可以调用MATLAB工作域内所有 的数据,而且,所产生的所有变量均为全局变量,直到用户 执行clear命令清除;函数式文件中所有变量除特殊声明,均 为局部变量。
命令式M文件
if 条件式1 条件块语句组1
elseif 条件式2 条件块语句组2 …
else
否 条件1
是
条件2
是
语句组1 语句组2
条件块语句组n+1
end
否
条件n 是
语句组n
否 语句组n+1
分支语句 switch 开关表达式 case 表达式1 语句段1 case {表达式2,表达式3,…,表达式m} 语句段2 …
f=fibfun(n-1)+fibfun(n-2); else
f=1; end
?help fibfun
FIBFUN for calculating fibonacci numbers. Incidengtally, the name fibonacci comes from Filius Bonassi, or "son of Bonassus" fibfun.m
?lookfor fib FIBFUN for calculating fibonacci numbers. 注:为了利用MATLAB的关键字搜索功能,应该在M文件的第
一行注释中,尽可能多的包含函数的特征信息。
控制语句
循环语句 有两种方式:for循环和while循环
for循环 for 循环变量=s1:s3:s2 循环体语句组 end
此格式执行; 文件名必须与函数名一一对应; 函数执行完后,只保留返回结果,不保留中间过程;
例:
function f=fibfun(n) %FIBFUN for calculating fibonacci numbers. %Incidengtally, the name fibonacci comes from %Filius Bonassi, or "son of Bonassus" %fibfun.m if n>2
catch 语句段2
end 首先试探性的执行语句段1,如果在执行过程中
出现错误,则将错误信息赋给lasterr变量,并放弃 该段语句,转而执行语句段2中的语句。ห้องสมุดไป่ตู้
function c=testtry(a,b) try
c=a+b; catch
c=strcat(a,b); end
人机交互语句
echo语句 echo on 打开命令式文件的回应命令; echo off 关闭回应命令; echo file on 使file文件的命令在执行中被显示; echo file off 关闭file文件的命令执行中的回应; echo on all 显示所有执行文件的执行过程; echo off all 关闭所有执行文件的回应显示;
if 条件式 条件块语句组1
else 条件块语句组2
end
是
否
条件语句组
语句组1
语句组2
例:多项式加 p1=[1 5 4]; p2=[1 6 11 6]; n1=length(p1); n2=length(p2); if n1<n2, p1=[zeros(1,n2-n1) p1]; else p2=[zeros(1,n1-n2) p2]; end psum=p1+p2 psum = 1 7 16 10
otherwise 语句段n
end
注意:
无需像C语言那样在下一个case语句前加break语 句;
当需要在开关表达式满足若干个表达式之一时, 用单元结构来表示;
otherwise等价于C语言的default语句; 程序的执行结果与case语句的次序无关。
试探式语句
try 语句段1
r=
Gundam
yesinput 智能输入命令
answer=yesinput(question,default,possib) question为屏幕提示问题,default为默认值, possib为检验范围。
标点符号要运用恰当; 注意程序的书写风格,保持程序的可读性; 要以m为文件扩展名,在低版本的matlab中,文件名要符合8.3格式。
函数式M文件 function [返回变量列表]=函数名(输入变量列表) 注释说明语句段
函数体 提示:
第一行为function语句; function后定义函数名和输入输出参数,函数被调用时按
说明:
for 语句一定要有end结束标志; 循环语句中要用“;”防止中间结果的输出; 书写时采用锯齿结构以增加可读性;
求取s1的值->i
例:求 100i i 1
i在s1和s2之间?
是 循环体语句组
i+s3->i
mysum=0;
否
for i=1:1:100
结束循环
mysum=mysum+i;
while循环 while 逻辑变量 循环体语句组 end
例(见前例): mysum=0;i=1; while (i<=100) mysum=mysum+i; i=i+1; end mysum
条件为真? 是
循环体语句
否
结束 循环
条件转移结构 if 逻辑变量 条件语句组
end
例: mysum=0; for m=1:1000 if (mysum>10000), break; end mysum=mysum+m; end [m, mysum]
用户输入提示命令
input 用来提示用户从键盘输入数据、字符 串或表达式,并接收输入值。
?r=input('How many apples:') How many apples:2
r=
2
?r=input('What''s your name?','s') What's your name?Gundam
end;
mysum
for 循环的一般形式 for v=vect statements end vect为任意给定的向量,则循环变量从向量的第一个数值一 直循环到最后一个数值。
例1(见前例): mysum=0; v=1:100; for i=v;mysum=mysum+i;end mysum
例2: x=[]; for i='Hello', x=[i x]; end, x
MATLAB程序设计基础
程序设计
M文件
两种形式:命令形式(Script)
函数形式(Function)
命令式M文件在运行过程中可以调用MATLAB工作域内所有 的数据,而且,所产生的所有变量均为全局变量,直到用户 执行clear命令清除;函数式文件中所有变量除特殊声明,均 为局部变量。
命令式M文件
if 条件式1 条件块语句组1
elseif 条件式2 条件块语句组2 …
else
否 条件1
是
条件2
是
语句组1 语句组2
条件块语句组n+1
end
否
条件n 是
语句组n
否 语句组n+1
分支语句 switch 开关表达式 case 表达式1 语句段1 case {表达式2,表达式3,…,表达式m} 语句段2 …
f=fibfun(n-1)+fibfun(n-2); else
f=1; end
?help fibfun
FIBFUN for calculating fibonacci numbers. Incidengtally, the name fibonacci comes from Filius Bonassi, or "son of Bonassus" fibfun.m
?lookfor fib FIBFUN for calculating fibonacci numbers. 注:为了利用MATLAB的关键字搜索功能,应该在M文件的第
一行注释中,尽可能多的包含函数的特征信息。
控制语句
循环语句 有两种方式:for循环和while循环
for循环 for 循环变量=s1:s3:s2 循环体语句组 end
此格式执行; 文件名必须与函数名一一对应; 函数执行完后,只保留返回结果,不保留中间过程;
例:
function f=fibfun(n) %FIBFUN for calculating fibonacci numbers. %Incidengtally, the name fibonacci comes from %Filius Bonassi, or "son of Bonassus" %fibfun.m if n>2
catch 语句段2
end 首先试探性的执行语句段1,如果在执行过程中
出现错误,则将错误信息赋给lasterr变量,并放弃 该段语句,转而执行语句段2中的语句。ห้องสมุดไป่ตู้
function c=testtry(a,b) try
c=a+b; catch
c=strcat(a,b); end
人机交互语句
echo语句 echo on 打开命令式文件的回应命令; echo off 关闭回应命令; echo file on 使file文件的命令在执行中被显示; echo file off 关闭file文件的命令执行中的回应; echo on all 显示所有执行文件的执行过程; echo off all 关闭所有执行文件的回应显示;
if 条件式 条件块语句组1
else 条件块语句组2
end
是
否
条件语句组
语句组1
语句组2
例:多项式加 p1=[1 5 4]; p2=[1 6 11 6]; n1=length(p1); n2=length(p2); if n1<n2, p1=[zeros(1,n2-n1) p1]; else p2=[zeros(1,n1-n2) p2]; end psum=p1+p2 psum = 1 7 16 10
otherwise 语句段n
end
注意:
无需像C语言那样在下一个case语句前加break语 句;
当需要在开关表达式满足若干个表达式之一时, 用单元结构来表示;
otherwise等价于C语言的default语句; 程序的执行结果与case语句的次序无关。
试探式语句
try 语句段1
r=
Gundam
yesinput 智能输入命令
answer=yesinput(question,default,possib) question为屏幕提示问题,default为默认值, possib为检验范围。