matlab基本语句.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) switch语句 switch语句可以替代多分支的if语句,而且switch语句简洁明了, 可读性更好。其格式为: switch 表达式 case 数值1
程序模块1 case 数值2
程序模块2 …… otherwise 程序模块n end 其中的otherwise模块可以省略。 switch语句的执行过程是:首先计算表达式的值,然后将其结果与 每一个case后面的数值依次进行比较,如果相等,则执行该case的程序
模块;如果都不相等,则执行otherwise模块中的语句。如图3所示。
例3 用switch…case开关结构将百分制的学生成绩转换为五分制 的成绩输出。 程序: clear x=58 switch fix(x/10)
case {10,9} y=’优秀’
case 8 y=’良好’
case 7 y=’中等’
一、程序设计概述 MATLAB所提供的程序设计语言是一种被称为第四代编程语言的高级 程序设计语言,其程序简洁,可读性很强,容易调试。同时,MATLAB的 编程效率比C/C++语言要高得多。 MATLAB编程环境有很多。常用的有: 1. 命令窗口 2. word窗口 3. M-文件编辑器,这是最好的编程环境。 M-文件的扩展名为“.m”。M-文件的格式分为两种:
①l M-脚本文件,也可称为“命令文件”。 ② M-函数文件。这是matlab程序设计的主流。l
保存后的文件可以随时调用。 二、MATLAB程序结构 按照现代程序设计的观点,任何算法功能都可以通过三种基本程序 结构来实现,这三种结构是:顺序结构、选择结构和循环结构。其中顺 序结构是最基本的结构,它依照语句的自然顺序逐条地执行程序的各条 语句。如果要根据输入数据的实际情况进行逻辑判断,对不同的结果进 行不同的处理,可以使用选择结构。如果需要反复执行某些程序段落, 可以使用循环结构。
捷按钮运行之。
三、M-文件 M文件是包含MATLAB代码的文件。M文件按其内容和功能可分为脚本 M文件和函数M文件这两大类。 1、脚本M文件 脚本M文件是许多MATLAB代码按顺序组成的命令集合,不接受参数 的输入和输出,与MATLAB工作区共享变量空间。脚本文件一般用来实现 一个相对独立的功能,比如对某个数据集进行某种分析、绘图,求解方 程等等。 前面的几个例题都是脚本文件的类型。 2、函数M文件 MATLAB的M-函数是由function语句引导的,其基本格式如下: function [输出形参列表] = 函数名 (输入形参列表) 注释说明语句段,由%引导; 函数体语句 函数文件需要在M-文件编辑器中编写。写完以后,按照当前的搜索 路径保存。以后就可以随时调用这个函数了。 与脚本M文件不同的是,调用函数M文件时需要输入自变量的实际 值。 随便打开一个M-文件看一看: open lsqlin
a, 练习五:①直接在命令窗编写上面的程序。 ②试运行下面的程序,并加以分析: 程序: disp(’ 九九乘法表 ’),for i=1:9, for j=1:i,p{i}(j)=j*i;end,disp(p{i}),end
(2) while…end 循环结构。其格式为: while (表达式) 循环结构体 end 例6 求MATLAB的相对精度 解:解题的思路是,让y值不断减小,直到MATLAB分不出1+y与1的 差别为止。 程序: y=1; while 1+y>1; y1=y; y=y/2; end,y1
编程实例 例7. 定义一个函数 f(x)=[sin(x)]2, 其中x以“度”为单位。然 后再调用该函数。 解:在M-文件编辑器内写入下面的文件: function y=sinsd(x) %自变量x以“度”为单位。 % %白城师院
%数学建模协会,2007-5-12 a=x/180*pi; y=sin(a).^2; 将上面的文件保存之后即可随时调用。 命令: t=sinsd(45) t =
case 6 y=’及格’
otherwise y=’不及格’
end
练习三:将例3写入M-文件编辑器,然后在command window 调用这 个程序。
3 循环结构 循环结构的流程图如图4所示它可以多次重复执行某一组语句。循 环是计算机解决问题的主要手段。
在MATLAB中,循环结构可以由两种语句结构实现。 (1) for…end 循环结构。其格式为:
说明: ①for循环与while循环的区别是,for语句的循环次数是确定的, 而while语句的循环次数是不确定的。 ②一定要注意在循环结构体内设置“修改条件表达式的语句”,以 免进入“死循环”。 ③一旦出现死循环,在命令窗用ctrl+c可使程序中止。 ④注意程序的可读性。 练习六:在M-文件编辑器内编写上面的脚本文件,并利用菜单或快
6.[n,m]=size(A)(A为矩阵) 这样可以得到矩阵A的行和列数 n=length(A),可以得到向量A的分量个数;如果是矩阵,则得到矩阵A 的行与列数这两个数字中的最大值。
7.!后面接Dos命令可以调用运行一个dos程序。 8.常见函数: poly():为求矩阵的特征多项式的函数,得到的为特征多项式的各个系 数。如a=[1,0,0;0,2,0;0,0,3],则poly(a)=1 -6 11 -6。 相当于poly(a)=1入^3+(-6)入^2+11入+(-6)。 compan():可以求矩阵的伴随矩阵. sin()等三角函数。 MATLAB在数学建模中的应用(3)
ans =
Columns 1 through 8
1
1
2
3
5 8
13
21
Columns 9 through 16
34
55
89 144 233
377
610
987
Columns 17 through 24
1597 2584 4181 6765 10946
17711 28657 46368
程序模块1
elseif 表达式2 程序模块2
…… …… elseif 表达式n 程序模块n
else 程序模块n+1
end 例2 将百分之的学生成绩转换为五分制输出。 程序: clear n=input(’输入n= ’) if n>=90 chji=’优秀’ elseif n>=80 chji=’良好’ elseif n>=7wk.baidu.com chji=’中等’ elseif n>=60 chji=’及格’ else chji=’不及格’ end 练习二:将例2写入M-文件编辑器,然后在command window 调用这 个程序。
for i=V,循环体结构,end 其中V为一个行向量,循环变量i每次从V中取一个数值,执行一次 循环体的内容,如此下去,直到完成V中的所有分量,就自动结束循环 体的执行。 例4 计算 s=12+22+52。 程序: a=[1 2 5 ]; s=0; for k=a, s=s+k^2; end, s,
在MATLAB中,选择结构可由两种语句来实现。 (1) if语句 if语句的最简单用法为: if 表达式; 程序模块; end
if语句的另一种用法为: if 表达式 程序模块1 else 程序模块2 end
例1 使用if语句判断学生的成绩是否及格。
1 顺序结构 顺序结构是由两个程序模块串接构成。一个程序模块是完成一项独立功 能的逻辑单元,它可以是一段程序、一个函数,或者是一条语句。
看图可知,在顺序结构中,这两个程序模块是顺序执行的,即先执 行<程序模块1>,然后执行<程序模块2>。 实现顺序结构的方法非常简单,只需将程序语句顺序排列即可。 2 选择结构
121393 elapsed_time = 34.4290 下面我们尝试用一般的循环语句来求解这个问题。 程序: tic,n=[1,1];for k=3:100,n(k)=n(k-1)+n(k-2);end,toc,
elapsed_time =
0.0100 命令: n(1:26)
注:for循环可以通过break语句结束整个for循环.
2.循环语句while 例:sum=0;i=1; while(i<=100) sum=sum+i;i=i+1; end
3.if语句 if(条件) 语句 end
if(条件) 语句
else 语句
end
if(条件) 语句
elseif 语句
end
4.关系表达式: =,>,<,>=,<=,==(精确等于) 5.逻辑表达式:|(或),&(且)
程序:
clear
n=input(’输入n= ’)
m=60;
if n<m,
r=’不及格’
else
r=’及格’
end
练习一:将例1写入M-文件编辑器,然后在command window 调用这 个程序。
当针对多个条件进行选择时,可以采用下面的格式: if 表达式1
0.5000 命令:
help sinsd 命令: t=sinsd([45,60]) t = 0.5000 0.7500 表明该函数对元素群运算有效。上面的语句相当于 命令: x=[45,60];t=sinsd(x) t =
0.5000 0.7500 命令: x=[45,60;30,90];f=sinsd(x) f = 0.5000 0.7500 0.2500 1.0000 将源文件中最后一行的“.”去掉,再运行以上两条命令,我们会 发现什么? 例8. 在MATLAB中,一个函数可以调用其它函数,也可以调用自 身,即递归调用。下面利用递归算法编写一个函数,用来计算 Fibonacci数列的第k项。 Fibonacci数列: 1,1,2,3,5,8,13,21,…… M-函数文件: function a=my_fibo(k) if k==1|k==2,a=1; else,a=my_fibo(k-1)+my_fibo(k-2);end 将这个文件写入M-文件编辑器并以名称“my_fibo.m”保存,以后 就可以调用这个函数。 递归算法无疑是解决某一类问题的有效方法,但不宜滥用,因为它 的运算速度往往很慢。 命令: tic, n= my_fibo(26) ,toc n =
matlab 基本语句 1.循环语句for for i=s1:s3:s2
循环语句组 end 解释:首先给i赋值s1;然后,判断i是否介于s1与s2之间;如果是,则 执行循环语句组,i=i+s3(否则,退出循环.);执行完毕后,继续下一 次循环。
例:求1到100的和,可以编程如下: sum=0 for i=1:1:100 sum=sum+i end 这个程序也可以用while语句编程。
该例题只是为了说明for语句的格式,事实上,用下面的语句求和 更为简单。 命令: p=sum(a.^2)
练习四:建立MATLAB与word的连接,在新建的m-book中写入上面的 程序,并用notebook菜单运行之。
循环结构里面还可以包含循环结构,形成多重循环。 例5 设计一个九九乘法表。 程序: clear for i=1:9 for j=1:9 a(i , j)=i*j; end end
程序模块1 case 数值2
程序模块2 …… otherwise 程序模块n end 其中的otherwise模块可以省略。 switch语句的执行过程是:首先计算表达式的值,然后将其结果与 每一个case后面的数值依次进行比较,如果相等,则执行该case的程序
模块;如果都不相等,则执行otherwise模块中的语句。如图3所示。
例3 用switch…case开关结构将百分制的学生成绩转换为五分制 的成绩输出。 程序: clear x=58 switch fix(x/10)
case {10,9} y=’优秀’
case 8 y=’良好’
case 7 y=’中等’
一、程序设计概述 MATLAB所提供的程序设计语言是一种被称为第四代编程语言的高级 程序设计语言,其程序简洁,可读性很强,容易调试。同时,MATLAB的 编程效率比C/C++语言要高得多。 MATLAB编程环境有很多。常用的有: 1. 命令窗口 2. word窗口 3. M-文件编辑器,这是最好的编程环境。 M-文件的扩展名为“.m”。M-文件的格式分为两种:
①l M-脚本文件,也可称为“命令文件”。 ② M-函数文件。这是matlab程序设计的主流。l
保存后的文件可以随时调用。 二、MATLAB程序结构 按照现代程序设计的观点,任何算法功能都可以通过三种基本程序 结构来实现,这三种结构是:顺序结构、选择结构和循环结构。其中顺 序结构是最基本的结构,它依照语句的自然顺序逐条地执行程序的各条 语句。如果要根据输入数据的实际情况进行逻辑判断,对不同的结果进 行不同的处理,可以使用选择结构。如果需要反复执行某些程序段落, 可以使用循环结构。
捷按钮运行之。
三、M-文件 M文件是包含MATLAB代码的文件。M文件按其内容和功能可分为脚本 M文件和函数M文件这两大类。 1、脚本M文件 脚本M文件是许多MATLAB代码按顺序组成的命令集合,不接受参数 的输入和输出,与MATLAB工作区共享变量空间。脚本文件一般用来实现 一个相对独立的功能,比如对某个数据集进行某种分析、绘图,求解方 程等等。 前面的几个例题都是脚本文件的类型。 2、函数M文件 MATLAB的M-函数是由function语句引导的,其基本格式如下: function [输出形参列表] = 函数名 (输入形参列表) 注释说明语句段,由%引导; 函数体语句 函数文件需要在M-文件编辑器中编写。写完以后,按照当前的搜索 路径保存。以后就可以随时调用这个函数了。 与脚本M文件不同的是,调用函数M文件时需要输入自变量的实际 值。 随便打开一个M-文件看一看: open lsqlin
a, 练习五:①直接在命令窗编写上面的程序。 ②试运行下面的程序,并加以分析: 程序: disp(’ 九九乘法表 ’),for i=1:9, for j=1:i,p{i}(j)=j*i;end,disp(p{i}),end
(2) while…end 循环结构。其格式为: while (表达式) 循环结构体 end 例6 求MATLAB的相对精度 解:解题的思路是,让y值不断减小,直到MATLAB分不出1+y与1的 差别为止。 程序: y=1; while 1+y>1; y1=y; y=y/2; end,y1
编程实例 例7. 定义一个函数 f(x)=[sin(x)]2, 其中x以“度”为单位。然 后再调用该函数。 解:在M-文件编辑器内写入下面的文件: function y=sinsd(x) %自变量x以“度”为单位。 % %白城师院
%数学建模协会,2007-5-12 a=x/180*pi; y=sin(a).^2; 将上面的文件保存之后即可随时调用。 命令: t=sinsd(45) t =
case 6 y=’及格’
otherwise y=’不及格’
end
练习三:将例3写入M-文件编辑器,然后在command window 调用这 个程序。
3 循环结构 循环结构的流程图如图4所示它可以多次重复执行某一组语句。循 环是计算机解决问题的主要手段。
在MATLAB中,循环结构可以由两种语句结构实现。 (1) for…end 循环结构。其格式为:
说明: ①for循环与while循环的区别是,for语句的循环次数是确定的, 而while语句的循环次数是不确定的。 ②一定要注意在循环结构体内设置“修改条件表达式的语句”,以 免进入“死循环”。 ③一旦出现死循环,在命令窗用ctrl+c可使程序中止。 ④注意程序的可读性。 练习六:在M-文件编辑器内编写上面的脚本文件,并利用菜单或快
6.[n,m]=size(A)(A为矩阵) 这样可以得到矩阵A的行和列数 n=length(A),可以得到向量A的分量个数;如果是矩阵,则得到矩阵A 的行与列数这两个数字中的最大值。
7.!后面接Dos命令可以调用运行一个dos程序。 8.常见函数: poly():为求矩阵的特征多项式的函数,得到的为特征多项式的各个系 数。如a=[1,0,0;0,2,0;0,0,3],则poly(a)=1 -6 11 -6。 相当于poly(a)=1入^3+(-6)入^2+11入+(-6)。 compan():可以求矩阵的伴随矩阵. sin()等三角函数。 MATLAB在数学建模中的应用(3)
ans =
Columns 1 through 8
1
1
2
3
5 8
13
21
Columns 9 through 16
34
55
89 144 233
377
610
987
Columns 17 through 24
1597 2584 4181 6765 10946
17711 28657 46368
程序模块1
elseif 表达式2 程序模块2
…… …… elseif 表达式n 程序模块n
else 程序模块n+1
end 例2 将百分之的学生成绩转换为五分制输出。 程序: clear n=input(’输入n= ’) if n>=90 chji=’优秀’ elseif n>=80 chji=’良好’ elseif n>=7wk.baidu.com chji=’中等’ elseif n>=60 chji=’及格’ else chji=’不及格’ end 练习二:将例2写入M-文件编辑器,然后在command window 调用这 个程序。
for i=V,循环体结构,end 其中V为一个行向量,循环变量i每次从V中取一个数值,执行一次 循环体的内容,如此下去,直到完成V中的所有分量,就自动结束循环 体的执行。 例4 计算 s=12+22+52。 程序: a=[1 2 5 ]; s=0; for k=a, s=s+k^2; end, s,
在MATLAB中,选择结构可由两种语句来实现。 (1) if语句 if语句的最简单用法为: if 表达式; 程序模块; end
if语句的另一种用法为: if 表达式 程序模块1 else 程序模块2 end
例1 使用if语句判断学生的成绩是否及格。
1 顺序结构 顺序结构是由两个程序模块串接构成。一个程序模块是完成一项独立功 能的逻辑单元,它可以是一段程序、一个函数,或者是一条语句。
看图可知,在顺序结构中,这两个程序模块是顺序执行的,即先执 行<程序模块1>,然后执行<程序模块2>。 实现顺序结构的方法非常简单,只需将程序语句顺序排列即可。 2 选择结构
121393 elapsed_time = 34.4290 下面我们尝试用一般的循环语句来求解这个问题。 程序: tic,n=[1,1];for k=3:100,n(k)=n(k-1)+n(k-2);end,toc,
elapsed_time =
0.0100 命令: n(1:26)
注:for循环可以通过break语句结束整个for循环.
2.循环语句while 例:sum=0;i=1; while(i<=100) sum=sum+i;i=i+1; end
3.if语句 if(条件) 语句 end
if(条件) 语句
else 语句
end
if(条件) 语句
elseif 语句
end
4.关系表达式: =,>,<,>=,<=,==(精确等于) 5.逻辑表达式:|(或),&(且)
程序:
clear
n=input(’输入n= ’)
m=60;
if n<m,
r=’不及格’
else
r=’及格’
end
练习一:将例1写入M-文件编辑器,然后在command window 调用这 个程序。
当针对多个条件进行选择时,可以采用下面的格式: if 表达式1
0.5000 命令:
help sinsd 命令: t=sinsd([45,60]) t = 0.5000 0.7500 表明该函数对元素群运算有效。上面的语句相当于 命令: x=[45,60];t=sinsd(x) t =
0.5000 0.7500 命令: x=[45,60;30,90];f=sinsd(x) f = 0.5000 0.7500 0.2500 1.0000 将源文件中最后一行的“.”去掉,再运行以上两条命令,我们会 发现什么? 例8. 在MATLAB中,一个函数可以调用其它函数,也可以调用自 身,即递归调用。下面利用递归算法编写一个函数,用来计算 Fibonacci数列的第k项。 Fibonacci数列: 1,1,2,3,5,8,13,21,…… M-函数文件: function a=my_fibo(k) if k==1|k==2,a=1; else,a=my_fibo(k-1)+my_fibo(k-2);end 将这个文件写入M-文件编辑器并以名称“my_fibo.m”保存,以后 就可以调用这个函数。 递归算法无疑是解决某一类问题的有效方法,但不宜滥用,因为它 的运算速度往往很慢。 命令: tic, n= my_fibo(26) ,toc n =
matlab 基本语句 1.循环语句for for i=s1:s3:s2
循环语句组 end 解释:首先给i赋值s1;然后,判断i是否介于s1与s2之间;如果是,则 执行循环语句组,i=i+s3(否则,退出循环.);执行完毕后,继续下一 次循环。
例:求1到100的和,可以编程如下: sum=0 for i=1:1:100 sum=sum+i end 这个程序也可以用while语句编程。
该例题只是为了说明for语句的格式,事实上,用下面的语句求和 更为简单。 命令: p=sum(a.^2)
练习四:建立MATLAB与word的连接,在新建的m-book中写入上面的 程序,并用notebook菜单运行之。
循环结构里面还可以包含循环结构,形成多重循环。 例5 设计一个九九乘法表。 程序: clear for i=1:9 for j=1:9 a(i , j)=i*j; end end