(完整版)Matlab实验5选择结构程序结构
(完整版)Matlab实验5选择结构程序结构

(完整版)Matlab实验5选择结构程序结构实验五、选择与循环结构一、实验目的:1、掌握建立和执行M 文件的方法。
2、掌握利用if 语句实现选择结构的方法。
3、掌握利用switch 语句实现多分支选择结构的方法。
4、掌握try 语句的使用。
5、掌握利用for 语句实现循环结构的方法。
6、掌握利用while 语句实现循环结构的方法。
7、熟悉利用向量运算来代替循环的操作方法。
二、实验内容:1、列分段函数的值。
--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y要求:(1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
提示:x 的值从键盘输入,可以是向量。
%homework_5_1_1.mx=input('请输入x 的值:x=');if (x<0 & x~=-3)y= x.*x + x - 6elseif (x>=0 & x<10 & x~=2 & x~=3)y=x.*x-5.*x+6elsey=x.*x-x-6end>> homework_5_1请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]y =-5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000(2) 用逻辑表达式实现上述函数。
%homework_5_1_2.mx=input('请输入x 的值:x=')y=(x<0 & x~=-3).*(x.*x+x-6)...+(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)...+(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6)>> homework_5_1_2请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]x =-0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y =-6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.00002、输入一个百分制成绩,要求输出成绩的等级为A,B,C,D,E。
实验5

实验五第3章MATLAB程序设计第二节程序控制结构程序控制结构有三种:顺序结构、旋择结构、循环结构.任何复杂的程序都可以由这三种基本结构构成.Matlab提供了实现控制结构的语句,利用这些语句可以编写解决实际问题的程序.一、顺序结构顺序结构是指按照程序中语句的排列顺序从上到下依次执行,直到程序的最后一个语句如例1的qiu文件和例2的dd1文件.这是最简单的一种程序结构.一般涉及数据的输入、计算或处理、数据的输出等内容.1. 数据的输入通过input命令来接收从终端输入的内容,它也可以显示文本和提示.命令集14 输入命令input(out ,in)在屏幕上显示出字符串out的文本并等待终端的输入.如果变量in是's',则输入的内容以字符串的形式进行保存,通常MATL AB在保存前要尽可能地求出表达式的值.如果使用格式控制符号如'\n',字符串out可以是若干行.2. 数据的输出可以通过简单地输入变量的名字来显示数字矩阵或者字符串向量的内容,结果将显示出变量的名字和内容.另一种显示变量的值就是使用命令disp.使用它只显示出变量的内容,这是有用的,特别是在字符串的应用中.命令集15显示命令disp(A)显示矩阵A的内容,如果A是字符串,则显示出它的文本.二、循环结构循环结构是按照给定的条件,重复执行指定的语句.Matlab用于实现循环结构的语句有for — end语句和while — end语句.1.for —end语句for-end语句的格式为:for 循环变量=表达式1 : 表达式2 : 表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.循环语句应用时应注意:● 循环语句可以嵌套使用;● 不能在 for — end 循环体内改变循环变量的值; ● 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for — end 循环的使用,如例8;● 如果预先就知道循环的次数,则可以采用 for — end 循环;否则,如果预先无法确定循环的次数,则可以使用 while — end 循环.2. while — end 循环while-end 语句的一般格式为:while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环.■例1 使用while-end 结构计算1+2+3+…+100 . 解:■例2 计算 Matlab 中 eps 值 (exp1.m) 解:s=0;for i=1:100 s=s+i; end ss=0; i=1;while i<=100 s=s+i; i=i+1; end snum=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; endEPS,num三、选择结构选择结构是根据给定的条件成立或不成立,分别执行不同的语句.Matlab 用于实现选择结构的语句有条件语句:if –end 和 开关语句:switch-end .1.单分支结构 if —end 语句 2.双分支结构 if —else —end 语句 if-end 语句的格式为: if-else-end 语句的格式为:3.多分支结构 if — elseif — else — end 语句 if — elseif — else — end 语句的格式为:if 条件表达式 语句组 endif 条件表达式 语句组1 else语句组2 endif 条件表达式1 语句组1 elseif 条件表达式 2 语句组2 ... ...elseif 条件表达式 m 语句组m else 语句组end■例3求函数1;00;1;x y x x -<⎧⎪= =0⎨⎪ >⎩ ,输入x 值,输出y 值.解:■例4一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数.输出全部水仙花数.解:程序如下运行结果:153 370 371 407function y=fuhao(x) if x<0 y=-1; elseif x==0 y=0; else y=1; endA=[];for m=100:999m1=fix(m/100); %求m 的百位数字 m2=rem(fix(m/10),10); %求m 的十位数字 m3=rem(m,10); %求m 的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 A=[A,m];endend disp(A)4. switch-end 语句根据表达式的不同取值,分别执行不同的语句.其格式如下:■关于 switch-end 语句的几点注解:● Matlab 首先计算表达式的值,然后将它依次与各个case 指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch-end 结构● 如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch-end 结构 ● otherwise 指令可以不出现● switch 后面的表达式的值可以是一个标量或字符串 ● case 指令后的检测值超过一个时,应用{}括起来switch 表达式 case 值1 语句组1 case 值2 语句组2 ... ... case 值m 语句组m otherwise 语句组n end■例5 阅读程序method=input('请输入方法名:')switch methodcase {'linear','bilinear'}disp('Method is linear')case 'cubic'disp('Method is cubic')case 'nearest'disp('Method is nearest')otherwisedisp('Unknown method.')end■例6用switch-end语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为…A‟, 80~89分为…B‟,70~79分为…C‟,60~69分为…D‟,60分以下为…E‟.function sctole(score)grade=fix(score/10);switch gradecase {10,9}grade='A'case 8grade='B'case 7grade='C'case 6grade='D'otherwisegrade='E'end四、其他流程控制语句●break语句●continue语句●return语句●try语句●echo命令●keyboard命令●pause命令1.break和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句后的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环. ■例7求[100,200]之间第一个能被21整除的整数.for n=100:200if rem(n,21)~=0continueendbreakendn for n=100:200if rem(n,21)==0breakendendn2.try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.这种试探性执行语句是其他高级语言所没有的.■例8矩阵乘法运算要求两矩阵的维数相容,否则会出错.先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘.function C=rc(A,B)%A,B为矩阵tryC=A*B;catchC=A.*B;endlasterr %显示出错原因3.请求键盘输入命令keyboard暂停运行程序并处于等待键盘输入状态(便于调试及程序运行中修改变量),键入“return”程序继续运行.如运行如下:4. echo 命令(在命令窗口,程序调用前使用)一般情况下,M 文件执行时,文件中的命令不会显示在命令窗口.echo 命令可使文件命令在执行时可见.这对程序的调试及演示很有用.对命令文件和函数文件,echo 的作用稍微有些不同.●对命令文件,其格式如下:echo on 打开命令文件的回应命令 echo off 关闭回应命令●对函数文件,其格式如下:echo file on 使指定的file 文件的命令在执行中被显示出来 echo file off 关闭指定文件的命令在执行中的回应function y=f(x) keyboardy=(5*x-6)/((x-3)*(x-3)+2);>> f K>> x=4; K>> return ans = 4.6667>> y=f(4) K>> return y = 4.6667。
Matlab实验五分支结构程序设计答案

实验五分支结构程序设计实验内容(1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear>> format long gs=input('s=')n=fix(log10(s));A=0;for i=1:na=fix(s/10^n);x=fix(mod(s,10^i)/10.^(i-1));A=A+x*10^(n+1-i);endA+as=693s =693ans =396(2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E1)分别用if语句和switch语句实现2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息If语句>> a=input('输入成绩')if a>=90&a<=100 disp('A 成绩合理');elseif a>=80&a<90 disp('B 成绩合理');elseif a>=70&a<80 disp('C 成绩合理');elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理');else disp('成绩错误')end输入成绩98a =98A 成绩合理>> a=input('输入成绩')if a>=90&a<=100 disp('A 成绩合理');elseif a>=80&a<90 disp('B 成绩合理');elseif a>=70&a<80 disp('C 成绩合理');elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理');else disp('成绩错误')end输入成绩148a =148成绩错误switch语句>> a=input('输入成绩')switch a;case num2cell(0:59)disp('E 成绩合理');case num2cell(60:69)disp('D 成绩合理');case num2cell(70:79)disp('C 成绩合理');case num2cell(80:89)disp('B 成绩合理');case num2cell(90:100)disp('A 成绩合理');otherwisedisp('成绩错误');end输入成绩98a =98A 成绩合理>> a=input('输入成绩')switch a;case num2cell(0:59)disp('E 成绩合理');case num2cell(60:69)disp('D 成绩合理');case num2cell(70:79)disp('C 成绩合理');case num2cell(80:89)disp('B 成绩合理');case num2cell(90:100)disp('A 成绩合理');otherwisedisp('成绩错误');end输入成绩148a =148成绩错误小结实验心得体会通过本次实验,我逐渐掌握了点if语句和switch语句的使用,了解了分支结构程序设计方法。
matlab实验

实验一 MATLAB基本操作一、实验目的1、了解MATLAB应用程序环境2、掌握MATLAB语言程序的书写格式和MATLAB语言程序的结构。
3、掌握在MATLAB应用环境下编写程序4、掌握MATALB调试过程,帮助文件5、掌握MATLAB语言上机步骤,了解运行一个MATLAB程序的方法。
6、本实验可在学习完教材第一章后进行。
二、主要仪器及耗材PC电脑,MATLAB6.5软件三、实验内容和步骤1、MATLAB语言上机步骤:(1)、进入系统在C盘或其他盘上找到MATLAB或MATLAB6.5,然后双击其图标打开文件夹。
然后进行编辑源程序->编译->连接->执行程序->显示结果(2)、常用命令编辑切换(F6),编译(F9),运行(CTRL+F9),显示结果(ALT+F5)其它常用命令见“附录一”。
2、有下面的MATLAB程序。
(1)数值计算功能:如,求方程 3x4+7x3 +9x2-23=0的全部根p=[3,7,9,0,-23]; %建立多项式系数向量x=roots(p) %求根(2)绘图功能:如,绘制正弦曲线和余弦曲线x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x));(3)仿真功能:如,请调试上述程序。
3、熟悉MATLAB环境下的编辑命令,具体见附录一。
三、实验步骤1、静态地检查上述程序,改正程序中的错误。
2、在编辑状态下照原样键入上述程序。
3、编译并运行上述程序,记下所给出的出错信息。
4、按照事先静态检查后所改正的情况,进行纠错。
5、再编译执行纠错后的程序。
如还有错误,再编辑改正,直到不出现语法错误为止。
四、实验注意事项1、记下在调试过程中所发现的错误、系统给出的出错信息和对策。
分析讨论对策成功或失败的原因。
2、总结MATLAB程序的结构和书写规则。
五、思考题1、matlab到底有多少功能?2、MATLAB的搜索路径3、掌握使用MATLAB帮助文件实验二 MATLAB 矩阵及其运算一、 实验目的1、了解矩阵的操作,包括矩阵的建立、矩阵的拆分、矩阵分析等2、了解MATLAB 运算,包括算术运算、关系运算、逻辑运算等3、掌握字符串的操作,了解结构数据和单元数据。
MATLAB程序结构——选择结构.

根据表达式的取值不同,分别执行不同的语句。
表达式?
case
取值 1
语句组1
取值 2
取值 3 语句组3
取值 4
otherwise 语句组M
语句组2
语句组4
多分支结构 (swtich)
当任意一个分支的语句执行完后,直接执行 switch 语句后面的语句。 switch 子句后面的表达式可以是一个标量或字符串;case 子句后面的表 达式可以是标量或字符串。 If语句后面是一个比较值或者确定值,switch语句后面是一个确定值。
%从键盘输入自变量x的值,由分段函数给出y 的值。 clear; x=input (‘x=‘) %屏幕提示x= ,由键盘输入值赋给x if x<0 y=x^3; else y=5*x^2; end y
clear;
x0 0, 1, 0 x 1 例 f (x) 2 x , 1 x 2 2 x 5 , 2 x 求:f (1.5)
表达式 语句组 表达式
假
)
真 语句组
)
if语句 双分支
if ( else
表达式
)
真 语句组1
(语句组1)
表达式
假 语句组2
( 语句组2 )
end
if ( 表达式1) if语句 多分支: ( ) 语句组1
elseif ( ... ... elseif( 表达式m ) ( 语句组m ) else
例:实现成绩的五级制向百分制的转换,成绩为A转换为95,B为85,C为75,D为65,E为不及 格。要能判断输入有误
x=input(‘请输入成绩等级:’,’s’) switch x case ‘A’
915230-MATLAB第三版实验答案

for i=2:49 b=i*(i+l)-l; m=fix(sqrt(b)); for j=2:m
if rem(b,j)==0 break
end
end
if j==m
n=n+l;
s=s+b;
end
end
实验6函数文件
%第1题
function y=matl (x)$建立函数文件matl・m
实验7绘图操作
%第1题
% (1)
x=linspace(0,2*pif101);
y=(0.5 + 3*sin (x)・/(1+x.A2))・*cos(x); plot(x,y)
%(2)
x=-5:0・01:5;
y=[];%起始设y为空向疑
for x0=x
if x0<=0$不能写成x0=<0
y=[y,(xO+sqrt(pi))/exp(2)]; else
for i=10:99
j = 10*rem(iz10)+fix (i/10);
if mat3(i)&mat3(j)
disp (i)
end
end
%第4题
function y=fx(x)
y=l・/ ( (x-2)・A2+0・l)+1./((x-3)・A4+0・01);
$在命令窗口调用该函数文件:
y=fx(2)
if t==f+!
z=x+y;
elseif t==,-1
z=x-y;
elseif t==1*'
z=x*y;
elseif t==、['
z=x/y;
matlab选择与循环程序结构设计

matlab选择与循环程序结构设计在MATLAB 中,程序结构主要分为顺序结构、选择结构和循环结构三种。
下面分别介绍这三种程序结构的语法规则和示例:1. 顺序结构顺序结构是最简单的程序结构,其基本语法规则如下:```statement1statement2...statementN```其中,N 表示语句的数量。
在MATLAB 中,可以使用花括号`{}` 将语句括起来,形成一个代码块。
例如,下面的代码定义了一个向量,并对其进行了求和操作:```A = [1 2 3 4 5];sum = 0;for i = 1:size(A, 1)sum = sum + A(i);enddisp(['The sum of the elements in A is: ', num2str(sum)]);```在这个例子中,首先定义了一个向量A,然后使用`for` 循环语句遍历向量中的每个元素,将其加到变量`sum` 中,最后使用`disp` 函数输出求和的结果。
2. 选择结构选择结构是一种基于条件判断的程序结构,其基本语法规则如下:```if conditionstatement1elseif condition2statement2elsestatement3```其中,`condition` 表示条件判断,如果其结果为真,则执行`statement1`,如果其结果为假,则依次判断`condition2` 是否为真,如果是,则执行`statement2`,否则执行`statement3`。
例如,下面的代码判断用户输入的数字是否为偶数,如果是,则输出"even",否则输出"odd":```num = input('Please enter a number: ');if num % 2 == 0disp('It is even!');elsedisp('It is odd!');end```3. 循环结构循环结构是一种重复执行某段代码的程序结构,其基本语法规则如下:while conditionstatement1end```或者```for variable in expressionstatement1end```其中,`condition` 表示循环条件,如果其结果为真,则执行`statement1`,直到其结果为假时停止循环。
实验五 matlab基础知识(简单)

本次实验注意:《实验五MALTAB基础知识(简单)》《实验五基于Matlab的信号频谱分析(复杂)》选作一个即可实验五MALTAB基础知识(一)实验目的 (2)(二)实验设备 (2)(三)实验要求 (2)(四)实验内容 (2)1.1 MATLAB基础知识 (2)1.1.1 MATLAB程序设计语言简介 (2)1.1.2 MA TLAB界面及帮助 (2)1.2 MA TLAB基本运算 (4)1.2.1 MA TLAB内部特殊变量和常数 (4)1.2.2 变量类型 (4)1.2.3 内存变量管理 (5)1.2.4 MA TLAB常用数学函数 (5)1.2.5 MA TLAB矩阵生成 (5)1.2.6 MA TLAB矩阵运算 (8)1.2.7 MA TLAB中的矩阵分析 (10)1.3 MA TLAB程序设计 (10)1.3.1 M文件 (10)1.3.2 程序控制结构 (12)实验五MALTAB基础知识(一)实验目的●了解MA TLAB 程序设计语言的基本特点,熟悉MA TLAB软件运行环境●掌握创建、保存、打开m文件及函数的方法●掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进行处理的能力(二)实验设备计算机,Matlab软件(三)实验要求本实验属于验证实验,请根据(四)实验内容的步骤,运行相应的指令或例子,并将仿真结果截图至文档(请自己新建一个word文档,注意,并不一定所有指令或例子的实验结果都要截图,截图数目大于等于5个即可,自己选择性截图,答案不唯一,自由发挥)请在页眉处填写班级、学号、姓名,并将实验报告命名为“实验五_学号_姓名”,并通过FTP上传至指定文件夹。
(四)实验内容1.1 MATLAB基础知识1.1.1 MATLAB程序设计语言简介MA TLAB,Matrix Laboratory的缩写,是由MathWorks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五、选择与循环结构一、实验目的:1、 掌握建立和执行M 文件的方法。
2、 掌握利用if 语句实现选择结构的方法。
3、 掌握利用switch 语句实现多分支选择结构的方法。
4、 掌握try 语句的使用。
5、 掌握利用for 语句实现循环结构的方法。
6、 掌握利用while 语句实现循环结构的方法。
7、 熟悉利用向量运算来代替循环的操作方法。
二、实验内容:1、 列分段函数的值。
⎪⎩⎪⎨⎧--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y要求:(1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
提示:x 的值从键盘输入,可以是向量。
%homework_5_1_1.mx=input('请输入x 的值:x=');if (x<0 & x~=-3)y= x.*x + x - 6elseif (x>=0 & x<10 & x~=2 & x~=3)y=x.*x-5.*x+6elsey=x.*x-x-6end>> homework_5_1请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]y =-5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000(2) 用逻辑表达式实现上述函数。
%homework_5_1_2.mx=input('请输入x 的值:x=')y=(x<0 & x~=-3).*(x.*x+x-6)...+(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)...+(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6)>> homework_5_1_2请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]x =-0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y =-6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.00002、输入一个百分制成绩,要求输出成绩的等级为A,B,C,D,E。
其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和switch语句实现。
%homework_5_2_1.mclear;disp(' if_else语句!')x=input('请输入分数:');if (x<=100 & x>=90)disp('A')elseif (x>=80 & x<=89)disp('B')elseif (x>=70 & x<=79)disp('C')elseif (x>=60 & x<=69)disp('D')elseif (x<60)disp('E')end>> homework_5_2_1if_else语句!请输入分数:99A>> homework_5_2_1if_else语句!请输入分数:50E%homework_5_2_1_switch.mclear;disp(' switch语句!')c=input('请输入成绩:');switch ccase num2cell(90:100),disp('A');case num2cell(80:89),disp('B');case num2cell(70:79),disp('C');case num2cell(60:69),disp('D');otherwisedisp('E');end>> homework_5_2_1_switch请输入成绩:95A(2)输入百分制成绩后要判定该成绩的合理性,对不合理的成绩要输出出错信息。
%homework_5_2_1.mclear;disp(' if_else语句!')x=input('请输入分数:');if (x<=100 & x>=90)disp('A')elseif (x>=80 & x<=89)disp('B')elseif (x>=70 & x<=79)disp('C')elseif (x>=60 & x<=69)disp('D')elseif (x<60)disp('E')elseif (x<0 | x>100)disp('ERROR')end>> homework_5_2_1if_else语句!请输入分数:120ERROR%homework_5_2_1_switch.mclear;disp(' switch语句!')c=input('请输入成绩:');switch ccase num2cell(90:100),disp('A');case num2cell(80:89),disp('B');case num2cell(70:79),disp('C');case num2cell(60:69),disp('D');case num2cell(0:59),disp('E');otherwisedisp('输入错误!');end>> homework_5_2_1_switch请输入成绩:120输入错误!3、 建立 5×6矩阵,要求输出矩阵的第n 行元素,当n 值超过矩阵的行数时,自动转为输出矩阵最后一行元素、并给出出错信息。
%homework_5_3.mclear;clc;A=eye(6);A(6,:)=[];An=input('输出矩阵的第n 行元素,n=');tryA(n,:)catchdisp('矩阵只有5行元素!');end>> homework_5_3A =1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 0输出矩阵的第n 行元素,n=4ans =0 0 0 1 0 0>> homework_5_3A =1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 0输出矩阵的第n 行元素,n=7矩阵只有5行元素!4、 根据2222212121116n++++= π求π的近似值。
当n 分别取100、1000、10000结果是多少?要求:分别用循环结构和向量运算(使用sum 函数)来实现。
%homework_5_4.mclear;disp('循环结构');n=input('输入循环次数 n= ');y=0;for i=1:ny=y+1./(i.*i);enddisp(['圆周率=',num2str(sqrt(6.*y))]);>> homework_5_4循环结构输入循环次数 n= 100圆周率=3.1321>> homework_5_4循环结构输入循环次数 n= 1000圆周率=3.1406>> homework_5_4循环结构输入循环次数 n= 10000圆周率=3.1415%homework_5_4_sum.mclear;disp('向量运算(使用sum 函数)');n=input('循环次数 n= ');i=1:n;y=1./(i.*i);disp(['圆周率=',num2str(sqrt(6*sum(y)))]);>> homework_5_4_sum向量运算(使用sum 函数)循环次数 n= 100圆周率=3.1321>> homework_5_4_sum向量运算(使用sum 函数)循环次数 n= 1000圆周率=3.1406>> homework_5_4_sum向量运算(使用sum 函数)循环次数 n= 10000圆周率=3.14155、 根据12151311-++++=n y ,求: (1)3<y 的最大n 值。
(2)与(1)的n 对应的y 。
%homework_5_5.mclear;y=0;for i=1:10000y=y+1./(2.*i-1);if(y>=3)break;endendy=y-1./(2.*i-1)i=i-1>> homework_5_5y =2.9944i =566、一个三位整数各位数字的立方和等于该数的本身则称该数为水仙花数。
试输出全部水仙花数。
要求:(1)用循环结构实现。
%homework_5_6_1.m%fix(x)向零取整clearfor M=100:999M3=fix(M./100); %fix(x)向零取整M2=fix((M-M3.*100)./10);M1=M-100.*M3-10.*M2;if(M1.*M1.*M1+M2.*M2.*M2+M3.*M3.*M3==M)disp(M);endend>> homework_5_6_1153370371407(2)用向量运算来实现。
提示:全部三位整数组成向量M;分别求M各个元素的个位、十位、百位数字,组成向量M1、M2、M3;向量N=M1.*M1.*M1+M2.*M2.*M2+M3.*M3.*M3;向量K=M-N;显然K中的零元素的序号即M中的水仙花的序号。
%homework_5_6_2.mclearM=100:999;M3=fix(M./100); %fix(x)向零取整M2=fix((M-M3.*100)./10);M1=M-100.*M3-10.*M2;N=M1.*M1.*M1+M2.*M2.*M2+M3.*M3.*M3;K=M-N;M(find(K==0))>> homework_5_6_2ans =153 370 371 4077、 已知 ⎪⎪⎩⎪⎪⎨⎧>+-====---3,2101321321n f f f f f f f n n n n求1001f f -中:(1)最大值、最小值、各数之和。