第七讲 matlab编程.ppt_第1页
第七讲 matlab编程.ppt_第2页
第七讲 matlab编程.ppt_第3页
第七讲 matlab编程.ppt_第4页
第七讲 matlab编程.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、,第四章 MATLAB编程,第七讲 MATLAB编程,一、循环语句:,for循环语句计数循环方式: 调用格式为: for 循环变量=初值:步长:终值 循环体语句 end,执行过程:将初值赋给循环变量,执行循环体语句;执行完一次循环之后,循环变量自增一个步长的值,然后再判断循环变量的值是否介于初值和终值之间,如果满足仍然执行循环体,直至不满足为止。,MATLAB提供了两种循环方式 (1)for-end 循环(2)while-end循环。,循环的嵌套调用格式为: for 循环变量1=初值1:步长1:终值1 for 循环变量2=初值2:步长2:终值2 循环体语句 end end,例1. 矩阵 计算各

2、行的长度.,解:输入: A=1,3,0;2,6,2;3,6,4; for i=1:3, d=norm(A(i,:) end,例1. 矩阵 计算各行的长度.,结果为:d = 3.1623 d = 6.6332 d =7.8102 不是矩阵,若继续运算就麻烦.,若为矩阵只需将d=norm(A(i,:)改成 d(i)=norm(A(i,:),执行过程:若表达式的值为真时,则执行循环体语句,执行后再判断表达式的值是否为真,直到表达式的值为假则跳出循环。, while循环语句条件循环方式,注意:1.while语句一般用于事先不能确定循环次数的情况。 2.while语句以end作为结束标志.,while语

3、句的一般调用格式为: while 表达式 循环体语句 end,例2. 用while-end 循环求 1100之间的和.,解:输入:sum = 0;i=1;while i=100 sum = sum+i; i=i+1; end sum,二、条件控制语句:,if 表达式( logical expression) 执行语句(statement) end,注意:在if和logical expression(逻辑表达式)之间要有一个空格。statement(程序语句)可以是一个命令,也可以是由逗号,分号隔开的若干命令或者是 r e t u r n s。,MATLAB提供了两种条件控制方式: if分支语句

4、和 switch分支语句。, if分支语句: 在MATLAB中,if语句有3种调用格式,(a) 单分支if语句调用格式为,其执行过程为:当表达式的值为真时,则执行语句体,执行完之后继续执行if语句的后继语句;否则跳过语句体直接执行if语句的后继语句。,(b) 双分支if语句调用格式 ( if-else-end 语句),if 表达式 语句体1; else 语句体2; end,其执行过程为:当表达式的值为真时,执行语句体1,否则执行语句体2;语句体1或语句体2执行后,再执行if语句的后继语句。,(c) 多分支if语句调用格式,if 表达式1 语句体1; else if 表达式2 语句体2; els

5、e 语句体3; end,其执行过程为:当表达式1的值为真时,执行语句体1,然后跳出继续执行if语句的后继语句;否则判断表达式2的值,为真则执行语句体2然后跳出继续执行if语句的后继语句;再否则,例3. 计算例1中矩阵的第一列的和,若等于6,则从矩阵A中删除该列。,解:A=1,3,0;2,6,2;3,6,4; if sum(A(:,1)=6, A=A(:,2:3) end,结果为A = 3 0 6 2 6 4,例4. 对例1中的矩阵计算第二行的长度,若小于20,则从矩阵A中删除该行.,解:if norm(A(2,:)=20, A=A(1,:);A(3,:) end,A = 1 3 0 3 6 4

6、,if语句可以与else if或else组合起来用于更复杂的上下文语句中。可以有如下的结构存在:,(3) if 表达式1 执行语句1 else if 表达式2 执行语句2 else 执行语句3 end,(2) if 表达式 执行语句1 else 执行语句2 end,例5. 对例1中的矩阵计算第二行的长度,若大于20,则从矩阵A中删除该行,否则该行全为1,解: A=1,3,0;2,6,2;3,6,4; if norm(A(2,:)=20, A=A(1,:);A(3,:) else A=A(1,:);ones(1,3);A(3,:) end,switch分支结构语句,switch语句调用格式为:,

7、switch 表达式 case 表达式1 语句体1 case 表达式2 语句体2 case 表达式m 语句体m otherwise 语句体m+1 end,其执行过程为:控制表达式的值与每一个case后面表达式的值比较,若与第k(k的取值为1m)个case后面的表达式k的值相等,就执行语句体k;若都不相同,则执行otherwise下的语句体m+1。,练习1:计算例1矩阵各列的长度,所得结果左乘矩阵A.,解:for i=1:3, d(i)=norm(A(:,i); end B=d*A,B = 35.1581 92.0578 35.8885 d能否右乘矩阵A,为什么?,练习2:计算例1矩阵各列的长度

8、,然后构造一个矩阵D, 使得D各行元素都是A对应列的长度,再右乘矩阵A.,解:for i=1:3, D(i,:)=norm(A(:,i), end C=A*D,D =3.7417 3.7417 3.7417 9.0000 9.0000 9.0000 4.4721 4.4721 4.4721,我们学过dist(A,B)计算A中每个行向量与B中每个列向量之间欧氏距离,A的行向量维数必须等于B的列向量维数.下面我们通过编程计算并与dist(A,B)进行比较.,例6 :A=1.14,1.78;1.18,1.96;1.20,1.86; 1.26,2.00; 1.28,2.00;1.30,1.96; B=

9、1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90; 1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08; 计算A的每个行向量与B的每个行向量之间距离.,解法一:dist(A,B),结果是6by9的矩阵第i行元素是A中第i行分别与B中各行的距离.(i=1,2,6),解法二. B1=B;for i=1:6, d1(i)=dist(A(i,:),B1(:,1); d5(i)=dist(A(i,:),B1(:,5); d2(i)=dist(A(i,:),B1(:,2); d6(i)=dist(A(i,:),B1(:,6);

10、d3(i)=dist(A(i,:),B1(:,3); d7(i)=dist(A(i,:),B1(:,7); d4(i)=dist(A(i,:),B1(:,4); d8(i)=dist(A(i,:),B1(:,8); d9(i)=dist(A(i,:),B1(:,9);end d=d1;d2;d3;d4;d5;d6;d7;d8;d9,从上面的例子可知:直接利用dist(A,B1)进行计算简单,但是当难以简单计算时,应该知道如何利用编程实现复杂计算.,解法二:A=1.14,1.78;1.18,1.96;1.20,1.86; 1.26,2.00; 1.28,2.00;1.30,1.96; B=1.2

11、4,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90; 1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08;,for i=1:6,na(i,:)=norm(A(i,:);end%求A中各行范数,for k=1:9,nb(k,:)=norm(B(k,:);end%求B中各行范数,a=A./na(:,1:2); 将矩阵A各行向量单位化 b=B./nb(:,1:2); 将矩阵B各行向量单位化,解法一:直接调用命令:da=normr(A);db=normr(B),例7. 将例6中A的各行向量与B的每个行向量单位化,三. 基本关系运算符与逻辑运算,在Matlab中有六种关系运算符及四种逻辑运算 (下表),例8. 考察矩阵A是否为正定矩阵,(1)实对称矩阵A为正定的充要条件是:A的特征值0.,A=2,1,-2;1,4,-1;-2,-1,5; u,v=eig(A),v = 0.9264 0 0 0 3.3931 0 0 0 6.6805,(2) n阶实对称矩阵A为正定矩阵的充要条件是:,A=2,1,-2;1,4,-1;-2,-1,5;rref(A),ans = 1 0 0 0 1 0 0 0 1,解:我们用三种方法解题:,(3) n阶实

温馨提示

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

最新文档

评论

0/150

提交评论