第2-3天第10章matlab软件简介_第1页
第2-3天第10章matlab软件简介_第2页
第2-3天第10章matlab软件简介_第3页
第2-3天第10章matlab软件简介_第4页
第2-3天第10章matlab软件简介_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、02:14:01MCM1MATLAB软件简介 10.1 基本操作 10.2 向量、矩阵及其运算 10.3 MATLAB程序设计 10.4 MATLAB图形处理 10.5 优化工具箱02:14:01MCM2 利用MATLAB的命令窗口,可以完成较为简单的运算,但遇到较为复杂的问题时,仅靠命令窗口来解决可能会非常繁琐,这时我们就要考虑使用MATLAB的程序设计。MATLAB提供了一个完善的程序设计语言环境,使我们能方便地编写复杂的程序,完成各种复杂的计算。MATLAB语言在形式上与C语言相似,但它的编程效率比C语言高得多,因为用MATLAB语言编程,不需要事先定义变量,不需要考虑数据类型,系统会自

2、动把所有的数据,包括标量、向量、字符、字符串等统一处理成矩阵,矩阵的大小是根据需要动态变化。在本节中我们主要介绍MATLAB类似于其它高级语言的关系运算、逻辑运算、程序的控制结构,以及MATLAB特有的M-文件。 10.3 MATLAB程序设计02:14:01MCM3 关系运算是指对两个量之间的大小比较,MATLAB提供了6个关系运算符,如表10.3所示。大于=大于或等于 a1=58a1 = 0 a2=1 2 3;4 5 6;a3=6 5 4;3 2 1; a4=a2 a5=a2=3 矩阵与标量间的关系运算是指矩阵的每个元 素与该标量进行关系运算。a5 = 0 0 1 1 1 1MATLAB提

3、供了3各逻辑运算符,如下表10.4所示:表10.4&逻辑与|逻辑或逻辑非 逻辑运算将每个非零元素当作1(真)来处理。同关系运算一样,它也可以作用于格式相同的矩阵,运算结果为由“0”和“1”组成的矩阵。 02:14:01MCM6 b1=3&0,b2=3|0,b3=(2=3) 数值的逻辑运算。b1 = 0b2 = 1b3 = 1 b4=-2 -1 0;1 2 3;b5=1 3 5;-1 -3 -5; b6=(b4-2)&(b5=b4|b4 c=1 2 3;0 1 0; c1=any(c),c2=all(c) c1 = 1 1 1 矩阵c的每一列中都有非零元素。c2 = 0 1 0 矩阵c中只有第二

4、列中所有元素非零。02:14:01MCM8 MATLAB程序的控制结构有顺序结构、循环结构和选择结构三种。顺序结构较为简单,即根据语句的书写顺序,从上到下按行执行,执行完所有语句后结束程序运行。我们这里主要介绍循环结构的控制流语句for、while和选择结构的控制流语句if、switch,这四个语句均以end结束。for循环语句的一般格式为:for 循环变量=冒号表达式循环体 end 其中的循环体可以是一条语句或命令,也可以是由逗号、分号隔开的若干语句或命令。冒号表达式用来控制循环的次数,对于由冒号表达式确定的每一个循环变量的值,循环体中的所有语句都被重复执行。02:14:01MCM9我们利用

5、for循环来计算自然数15的阶乘。 d=zeros(1,5); 开辟存放各阶乘的地址, MATLAB可动态 调节矩阵的格式,故只使用后面的语句 结果也是将各阶乘存放到矩阵d中,但预 先开辟空间可节约运行时间。 e=1; 对乘积因子变量e赋初值。 for i=1:5 循环变量i从1一直到5,步长为1。 d(i)=e*i; 此for循环的循环体包含两个语句,此 句作用是求i的阶乘并存放在d(i)处且结 果不显示(不显示可节约运行时间)。 e=d(i); 改变e的值且结果不显示。end 结束for循环。 disp(d) 显示各阶乘。 1 2 6 24 12002:14:01MCM10 前述for语句

6、一般格式中的“冒号表达式”部分也可以是任意的向量或矩阵的变量名,此时,循环变量依次取向量的值或按矩阵的列依次取值。 f1=1 3 5;f2=1 3 5;4 6 8; i=1;j=1; for g=f1 f3(i)=g; i=i+1; 取出f1的各分量的值。 End for h=f2 f4(j)=h(2)*h(1);j=j+1; 求各列元素的乘积。 end disp(f3) 1 3 5 disp(f4) 4 18 4002:14:01MCM11for循环可以嵌套使用,如以下程序可以生成35Hilbert矩阵。 k=zeros(3,5); for i=1:3 for j=1:5 k(i,j)=1/

7、(i+j-1); end end format rat 改变显示格式。 kk = 1 1/2 1/3 1/4 1/5 1/2 1/3 1/4 1/5 1/6 1/3 1/4 1/5 1/6 1/7 format 恢复显示格式。02:14:01MCM12 for循环主要用于循环次数固定的情形,而很多实际计算中循环次数往往并不能预先确定,此时我们可以使用while循环语句。 while循环语句的一般格式为:while 条件循环体 end “条件”即执行循环的条件,用来控制循环的次数,它可以是关系表达式或逻辑表达式。当条件成立(即为1)时,循环体被执行,直到条件不成立(即为0)时,结束循环。02:1

8、4:01MCM13我们利用while循环来寻找阶乘小于100万的最大的自然数。 m=1; while prod(1:m) m=m-1 结束循环的条件为阶乘大于100万,故最终的结果需减1。m = 9选择结构的if语句的格式主要有以下三种:格式1:if 条件 语句组 end当条件成立时,执行语句组,否则执行end的后续语句。02:14:01MCM14格式2:if 条件 语句组1 else 语句组2 end格式3:if 条件1 语句组1 else if 条件2 语句组2 else if 条件n 语句组n else 语句组n+1 end 当条件成立时,执行语句组1,否则执行语句组2。执行完成之后,执

9、行end的后续语句。 当条件1成立时,执行语句组1,执行完成后,执行end的后续语句;当条件1不成立时,判断条件2,若其成立,执行语句组2,执行完成后,执行end的后续语句;依次类推,若所有条件均不成立,则执行语句组n+1,执行完成后,执行end的后续语句。02:14:01MCM15 我们可以利用上述3种格式的if语句自定义左面的符号函数。若用格式1,需分别调用3次;若用格式2,则需使用嵌套;下面是用格式3书写的程序。 if x0 y=1; else if xp=rand(1,100);i=1;s=0; 生成随机数,循环变量、计数器赋初值。while 1 该条件总为真,如无中断语句break,

10、循环将 if p(i)=0.5 无休止地运行。 s=s+1; end i=i+1; if i100 设置循环中断条件。 break 该条件总为真,如无中断语句break,循环将无 休止地运行。 end end ss = 54 换新的100个随机数得到的统计个数可能不同。02:14:01MCM17 选择结构的switch语句根据表达式的值来选择执行相应的语句组。switch的格式为: switch 表达式 case 值1 语句组1 case 值2 语句组2 case 值n 语句组n otherwise 语句组n1 end 当表达式的值为值1时,执行语句组1,执行完成后,执行end的后续语句;当表

11、达式的值为值2时,执行语句组2,执行完成后,执行end的后续语句;依次类推,若以上均不满足,执行语句组n1,执行完成后,执行end的后续语句。02:14:01MCM18 到目前为止,我们仍然一直在命令窗口逐行输入数据和命令来实现计算等功能。这种方法对于较为简单的问题还可以接受,一旦问题较为复杂,这种方法就显得相当麻烦,这时MATLAB提供的以m为扩展名的M文件的作用就突显出来了。M 文件有两种类型:文本M文件和函数M文件。 建立M文件可以在MATLAB的主窗口的File下拉式菜单中选择New,再选择M-file,此时MATLAB将打开一个文本编辑窗口,在此窗口中输入一系列的命令和数据。编辑结束

12、后,在此窗口的File下拉式菜单中选择Save,将弹出保存对话框,选择文件的保存位置并键入文件名称(需遵循变量的命名规则)和“.m”,单击保存按钮即完成M文件的建立。已经建立好的M文件可以随时打开、编辑、修改,方法同Windows操作系统。02:14:01MCM19 文本M文件就是命令行的简单叠加,调用文本M文件时,MATLAB会自动按顺序执行文件中的命令行。以下是我们自己编写的命名为Fibo.m的一个文本M文件,它的功能是产生前n个Fibonnaci数。f=1 1;i=1;if n= =1 f(2)= ;elseif n=2 %如果n为2,不执行任何语句else while i n=10;F

13、ibo 产生前10个Fibonnaci数;文件中未指定n的大 小,需事先指定。f = 1 1 2 3 5 8 13 21 34 5502:14:01MCM21 函数M文件是另一类M文件。MATLAB所提供的绝大多数功能函数都是由函数M文件实现的,可见函数M文件的重要性。我们可以根据需要建立自己的函数M文件,它能够像系统中的功能函数一样方便地调用,从而极大地扩展了MATLAB的功能。函数M文件的第一行有特殊的格式,必须以function开头。函数M文件的一般格式为:function 输出参数表=函数名(形式参数) 语句组02:14:01MCM22 这里的输出参数表可以是一个变量,也可以是多个变量

14、,他们表示要计算的量。如果是一个参数,双括号可以去掉;如果是多个变量,两两之间用逗号隔开。这里的函数名必须与该文件的文件名一致,这样才能保证成功调用。形式参数是一组形式变量,本身没有任何意义,只有在调用时赋予它们实际值才有意义。 我们编写一个命名为Fibon.m的函数M文件,它的功能是产生前n个Fibonnaci数,并计算这n个数之和。02:14:01MCM23function f,s=fibon(n) %返回两个量f、s,n为形式参数。f=1 1;i=1;if n=1 f(2)= ;Else if n=2 %如果n为2,不执行任何语句。else while i fib,fibs=Fibon(10) 返回值分别赋予fib和fibsfib = 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论