matlab2013教程第三章选择语句.ppt_第1页
matlab2013教程第三章选择语句.ppt_第2页
matlab2013教程第三章选择语句.ppt_第3页
matlab2013教程第三章选择语句.ppt_第4页
matlab2013教程第三章选择语句.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

2019年5月27日,第1页,第3章 选择语句,if语句和switch语句 menu函数 is函数 for语句,主要内容,任何计算机语言都有三种基本结构: 顺序结构:无控制语句 分支结构:if , switch 循环结构:for, while,1、顺序结构:无控制语句,按照顺序从头至尾地执行程序中的各条语 句。顺序结构一般不包含其他任何子语句或控制 语句。,例如: n = 0:100; x = sin(2*pi*0.01*n); plot(x); hold on stem(x,r); grid,分支结构:if , switch,if和switch语句用于根据条件选择执行相 应的语句。,1、if 语句(适合分支少),if 语句根据逻辑表达式的值来确定是否执 行紧接的语句体。常见的调用格式有:,格式1:if 表达式 语句 end,格式2:if 表达式 语句1 else 语句2 end,Fenzi = input(Please input enter the FENZI: ); Fenmu = input(Please input enter the FENMU: ); if(Fenmu = 0) disp(Sorry The Fenmu can not be zero!); else fprintf(The result is %.2f.n,Fenzi/Fenmu); end,写一个脚本,提示用户输入分数的分子和分母。如果分母是0,则打印错误信息,指出0不能做分母。如果分母不是0,则打印分数结果。,格式3: if 表达式1 语句1 elseif 表达式2 语句2 else 语句3 end,例如: 判断输入数的奇偶性 n=input(n=); if rem(n,2)=0 display(n是偶数) else display(n是奇数) end,2、switch语句(适合分支多),格式: switch 表达式(标量或表达式) case 值1 语句1 case 值2 语句2 otherwise 语句n end,switch语句和if语句类似。Switch语句根据变量或表达式的取值不同分别执行不同的命令。,例如:根据菜单选择显示不同的函数 x=menu(波形,正弦,余弦,正切,余切); switch x case 1 ezplot(sin) case 2 ezplot(cos) case 3 ezplot(tan) case 4 ezplot(cot) end,menu函数,格式: menu(标题,标签1,标签2,标签3,.),格式:for 变量=初值:增量:终值 语句 end,例如:求100! x=1; for k=1:1:100 x=x*k; end,例: 已知 ,当n=100时,求y的值。 程序如下: y=0; n=100; for i=1:n y=y+1/(2*i-1); end,在实际MATLAB编程中,采用循环语句会降低其执行速度,所以前面的程序通常由下面的程序来代替: n=100; i=1:2:2*n-1; y=sum(1./i);,for语句更一般的格式为: for 循环变量=矩阵表达式 循环体语句 end 执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。,例: 写出下列程序的执行结果。 s=0; a=12,13,14;15,16,17;18,19,20;21,22,23; for k=a s=s+k; end disp(s);,4、while 语句 常用于条件循环,格式:while 表达式 语句 end,例如:计算1, ,1000的和 x=1; while x=1000 x=x+1; end,表达式成立(为真)时,一直执行语句,否则跳出循环 .,clear; x = input(Enter a maximum temp :); while(x 20) x = input(Error! Enter a maximum temp :); end; i = 0; fprintf(%6s%6sn,F,C); while(5/9*(i-32) x) fprintf(%6.1f%6.1fn,i,5/9*(i-32); i = i + 5; end;,例见P111 32,fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为: 数据的格式化输出:fprintf(fid, format, variables) 按指定的格式将变量的值输出到屏幕或指定文件 fid为文件句柄,若缺省,则输出到屏幕,format用来指定数据输出时采用的格式 %d 整数 %e 实数:科学计算法形式 %f 实数:小数形式 %g 由系统自动选取上述两种格式之一 %s 输出字符串,randn 产生均值为0,方差 2 = 1,标准差 = 1的正态分布的随机数或矩阵的函数。 用法: Y = randn(n) 返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。 Y = randn(m,n) 或 Y = randn(m n) 返回一个m*n的随机项矩阵。 Y = randn(m,n,p,.) 或 Y = randn(m n p.) 产生随机数组。 Y = randn(size(A) 返回一个和A有同样维数大小的随机数组。 randn 返回一个每次都变化的数量。 s = randn(state),rand 均匀分布的随机数或矩阵 用法: Y = rand(n) Y = rand(m,n) Y = rand(m n) Y = rand(m,n,p,.) Y = rand(m n p.) Y = rand(size(A) rand s = rand(state) 描述 rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组 Y = rand(n) 返回一个n x n的随机矩阵如果n不是数量,则返回错误信息 Y = rand(m,n) 或 Y = rand(m n) 返回一个m x n的随机矩阵 Y = rand(m,n,p,.) 或 Y = rand(m n p.) 产生随机数组 Y = rand(size(A) 返回一个和A有相同尺寸的随机矩阵,例: 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。 程序如下: sum=0; cnt=0; val=input(Enter a number (end in 0):); while (val=0) sum=sum+val; cnt=cnt+1; val=input(Enter a number (end in 0):); end if (cnt 0) sum mean=sum/cnt end,5、 break和continue语句,用于循环语句(for,while): break:用于跳出循环 continue :跳过后面的语句继续循环,例:输出100到200之间第一个能被7整除的数 for i=100:200 if rem(i,7)=0 continue end break end i,循环的嵌套 如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。,function output = ave(x) a b = size(x); Count = 0; output = 0; for i = 1 : a for j = 1 : b Count = Count + 1; output = output + x(i,j); end end output = output / Count;,写一个函数,输入参数为矩阵,计算并返回矩阵中所有数据的平均值。不使用内置函数,例: 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求1,500之间的全部完数。 for m=1:500 s=0;

温馨提示

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

评论

0/150

提交评论