(完整版)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公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。
matlab选择与循环结构程序
matlab选择与循环结构程序在编程领域中,选择与循环结构是非常基础和重要的概念。
在MATLAB中,选择结构主要是通过if语句来实现的,而循环结构则有for循环和while循环两种。
本文将介绍MATLAB中选择与循环结构的使用方法和一些常见的应用场景。
我们来看选择结构。
在MATLAB中,if语句的语法形式如下:if 条件执行语句;elseif 条件执行语句;else执行语句;end其中,条件可以是一个表达式或者一个逻辑判断,根据条件的真假来选择执行相应的语句块。
如果条件为真,则执行if语句块中的语句;如果条件为假,则继续判断下一个elseif语句的条件,并执行相应的语句块;如果所有条件都不满足,则执行else语句块中的语句。
选择结构的应用非常广泛。
例如,我们可以利用选择结构来判断一个数的正负性。
代码如下:num = input("请输入一个数:");if num > 0disp("该数为正数");elseif num < 0disp("该数为负数");elsedisp("该数为零");end在上述代码中,我们通过if语句来判断num的正负性,并根据不同的情况输出相应的结果。
除了选择结构,循环结构也是编程中常用的一种结构。
在MATLAB 中,for循环和while循环可以实现不同的循环逻辑。
for循环的语法形式如下:for 变量 = 起始值:步长:结束值执行语句;end其中,变量是循环变量,起始值是循环变量的初始值,步长是循环变量每次递增或递减的值,结束值是循环变量的结束条件。
下面是一个简单的例子,利用for循环计算1到10的和:sum = 0;for i = 1:10sum = sum + i;enddisp("1到10的和为:" + sum);在上述代码中,我们使用for循环来计算1到10的和,并将结果输出。
matlab的程序结构
matlab的程序结构Matlab的程序结构Matlab是一种高级的计算机编程语言和环境,广泛应用于科学计算、数据分析、图形绘制等领域。
Matlab的程序结构是指程序的组织形式和编写规范,合理的程序结构能够提高代码的可读性和可维护性,使程序更加清晰和易于理解。
1. 程序文件的命名和保存在Matlab中,程序文件通常以.m为后缀名。
为了方便管理,建议给程序文件取一个有意义的名字,能够反映出程序的功能或用途。
同时,在编写程序的过程中,要定期保存程序文件,以防止意外情况导致代码的丢失。
2. 程序文件的开头在程序文件的开头,通常会包含一些说明性的注释,用来介绍程序的功能、作者、更新日期等信息。
注释可以使用%符号来表示,以便于他人阅读和理解代码。
此外,还可以通过添加函数的帮助文档来提供更详细的说明。
3. 程序文件的主体部分程序文件的主体部分是实现具体功能的代码段落。
在编写代码时,可以根据程序的逻辑结构,将代码分为多个小的模块或函数,以增加程序的可读性和可维护性。
同时,要注意在适当的位置添加注释,解释代码的作用和用途,方便他人理解代码。
4. 程序文件的结尾在程序文件的结尾,可以进行一些清理工作,例如关闭已打开的文件、释放占用的内存等。
此外,还可以输出一些结果或提示信息,以便用户了解程序的执行情况。
5. 变量和函数的命名变量和函数的命名是程序结构中的重要部分。
在Matlab中,变量和函数的命名应具有描述性,能够反映其所代表的含义。
命名应遵循一定的规范,例如使用驼峰命名法或下划线命名法,以提高代码的可读性。
6. 控制流程的设计控制流程的设计是程序结构中的关键部分。
Matlab提供了一系列的控制语句,例如if语句、for循环、while循环等,用于根据不同的条件执行不同的操作。
在编写程序时,要合理地使用这些控制语句,以实现程序的预期功能。
7. 错误处理和异常处理错误处理和异常处理是程序结构中的重要组成部分。
在程序中,可能会出现各种各样的错误和异常情况,例如输入错误、计算错误等。
实验五MATLAB程序设计与调试
实验五MATLAB程序设计与调试实验五MATLAB程序设计与调试一、实验目的1、掌握MATLAB语言的程序结构2、培养调试程序的能力二、实验地点:A404三、实验日期:四、实验内容(一)M文件的操作1.M文件的建立与编辑1)建立新的M文件:从MATLAB命令窗口的File菜单中选择New菜单项,再选择M-file命令。
2)编辑已有的M文件:从MATLAB命令窗口的Flie菜单中选择Open M-file命令。
3)M文件的执行将需要运行的命令编辑到一个M文件中,然后在MATLAB命令窗口输入该M 文件的名字,机器就会按规则执行M文件中的所有命令。
例:将下列语句建立为一个M文件,并运行。
a=1:9;b=[11,12,13;14,15,16;17,18,19];c=a;a=b;b=c;ab(二)程序的结构与程序的设计1、选择结构选择结构的语句有if语句和switch语句。
例1:输入三角形的三条边,求面积。
A=input('请输入三角形的三条边:');if A(1)+A(2)>A(3) & A(1)+A(3)>A(2) & A(2)+A(3)>A(1)p=(A(1)+A(2)+A(3))/2;s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3)));disp(s);elsedisp('不能构成一个三角形。
')end运行:请输入三角形的三条边:[4 5 6]9.9216例2:高考录取模拟c=input('请输入您的分数:');if c>=550disp('请准备上一本');elseif c>500 & c<=550disp('可以上二本了');elseif c<500 & c>=400;disp ('三本等你来!')elsedisp('不能录取');end例3:模拟猜奖游戏。
matlab的程序结构
matlab的程序结构Matlab的程序结构Matlab是一种用于科学计算和数据分析的强大工具,其程序结构是构建Matlab程序的基本框架。
正确的程序结构可以使程序具有良好的可读性、可维护性和可重用性。
本文将介绍Matlab程序结构的基本要素和最佳实践,帮助读者编写高效、可靠的Matlab程序。
一、函数定义在Matlab中,每个程序通常都是由一个或多个函数组成的。
函数是Matlab程序的基本单位,用于封装特定功能的代码。
函数定义由关键字"function"开头,后跟函数名和参数列表。
函数名应该简洁明了,能够描述函数的功能。
参数列表包含了函数需要的输入参数,可以是变量、矩阵或其他数据类型。
二、变量声明在Matlab程序中,变量的声明是一个良好的编程习惯。
变量声明可以提高程序的可读性,同时还可以避免一些潜在的错误。
变量声明可以使用关键字"var"或直接赋值的方式进行。
在声明变量时,应该尽量使用有意义的变量名,避免使用一些通用的变量名,如i、j 等。
三、注释注释是Matlab程序中的重要组成部分,可以用于解释程序的目的、算法的步骤、变量的含义等。
注释可以增强程序的可读性,方便其他人理解和维护代码。
在Matlab中,注释可以使用"%"号进行,也可以使用"%"号后跟一个空格的方式进行。
注释应该写在代码的关键位置,帮助读者理解代码的含义。
四、代码块在Matlab程序中,代码块是一组相关的语句,可以通过大括号{}来定义。
代码块可以帮助组织程序的逻辑结构,使代码更加清晰。
代码块可以嵌套使用,用于处理复杂的程序逻辑。
在编写代码块时,应该注意代码的缩进,以增强程序的可读性。
五、条件判断条件判断是Matlab程序中常用的控制结构之一,用于根据不同的条件执行不同的代码块。
在Matlab中,条件判断可以使用"if-else"语句或"switch-case"语句来实现。
第三章Matlab的选择结构
第三章Matlab的选择结构第三章 Matlab的选择结构3.1 程序编写的⼀般步骤3.2 关系运算符 1) 0表⽰假,⾮0表⽰真; 2) ~=:不等于; 3) sin(pi) ~= 0:为1,⽐较a、b两个数是否相等⽅法:abs(a - b)<1.0e-143.3 逻辑运算 1) 先与&后或|3.4 逻辑函数与短路运算 1) 短路运算:&&、||;⾮短路运算:&、| 2) ischar(x)、isempty(x)、isinf(x)、isnan(x):是否不是数、isnumeric(x):是否是数 3) 1/0 = Inf 是数;0/0 = NaN 不是数3.5 if语句1) 语句结构:”if"开始,"end"结束if exp_1 block_1elseif exp_2 block_2... ...else block_nend3.6 流程图的绘制3.7 if语句的嵌套3.8 switch1)switch(value) case{1,3,5,7,9}, block_1; case{2,4,6,8}, block_2; ... ... otherwise, block_nend3.9 try_catch结构try block_1catch block_2end3.10 多个图像窗⼝与⼦窗⼝ 1) figure(n):图像窗⼝命令; 2) subplot(m,n,p):图像窗⼝中有m*n个⼦窗⼝,p是当前操作窗⼝;3.11 图像的增强控制 1) plot(x1,y1,LineSpec,...,xn,yn,LineSpec) 2) plot(x1,y1,LineSpec,'PropertyName',PropertyValue) 3) LineWidth:⽤来指定线的宽度 4) MarkerEdgeColor:⽤来指定标识表⾯的颜⾊ 5) MarkerFaceColor:填充标识的颜⾊ 6) MarkerSize:指定标识的⼤⼩例:x = -pi:pi/10:pi;y = tan(sin(x)) - sin(tan(x));plot(x,y,'--rs','LineWidth',3,...‘MarkerEdgeColor','k',...‘MarkerFaceColor','g',...‘MarkerSize',10)3.12 ⽂本的⾼级控制...。
matlab 程序组织结构
matlab 程序组织结构MATLAB是一种非常流行的科学计算软件,可以被用于许多应用领域,包括计算机科学、化学、机械、地球科学、生物学等。
当你开始编写MATLAB程序时,你需要考虑程序的组织结构,以确保程序易于理解、易于维护,并且在适当的时候可以扩展。
下面是MATLAB程序组织结构的主要要求和建议:1. 脚本和函数MATLAB程序可以分为脚本和函数。
脚本是一组MATLAB命令和表达式,按顺序执行。
函数是一个独立的代码单元,它可以接受输入参数并产生输出结果。
2. 目录和文件名为了组织你的MATLAB程序,你需要考虑它们的目录和文件名。
你应该把程序按照功能或主题划分为不同的目录,并使用有意义的文件名描述程序的用途。
3. 编写可重用的代码一些MATLAB程序中可能包括可以被多次调用的函数或函数库。
编写可重用的代码可以提高代码质量、改进工作效率并且方便未来的维护。
4. 使用注释注释是非常重要的,可以帮助你和别人理解代码是如何工作的。
你应该花费足够的时间来编写清晰、有用和易于理解的注释。
在MATLAB 中,你可以用“%”来注释代码。
5. 数据和变量在编写MATLAB程序时,你应该尽可能清晰地定义数据和变量。
比如,你可以使用变量名来描述变量的用途,名称可以简短、具有描述性、并且能够清晰地表达变量的含义。
此外,你应该避免在程序中使用魔法变量,这可能会导致代码难以维护。
6. 分离功能MATLAB程序可以分为不同的功能或子函数,每个功能或子函数都负责完成特定的任务。
此外,你应该尽可能地保持每个函数或子函数的独立性,避免它们之间出现过多的耦合。
总之,MATLAB程序的组织结构是非常重要的,可以帮助你和别人更好地理解和维护代码。
你应该花费时间和精力来创建一个组织良好的MATLAB程序结构,并尽可能遵循上述建议。
MATLAB 中的稈序控糊结构包揩
MATLAB 中的稈序控糊结构包揩
MATLAB 中3种最基本的控制结构:顺序结构、循环结构和选择结构。
顺序结构
(1)数据的输入input
input命令用来提示用户应从键盘输入数值、字符串和表达式,并接受该输入。
input命令常用的调用格式:
A=input(提示信息,选项)
(2)数据的输出disp
在命令行窗口输入数据时,可以使用disp函数,其调用格式为:disp(输出项)
输出项可以是字符串,也可以是矩阵
循环结构
两种:for end结构和while end结构
(1)for end结构
for语句的语法结构为:
for循环变量=开始量:增量:结束量
循环体语句
end
(2)while end结构
while语法格式如下:while表达式
循环体语句
end
选择结构
(1)if结构三种格式格式1:
if条件
语句组
end
格式2:
if条件
语句组1
else
语句组2
end
格式3:
if条件1
语句组1
elseif条件2
语句组2
elseif条件m
语句组m
elseif
语句组m+1
end
(2)switch case结构switch表达式
case值1
语句组1
case值2
语句组2
case值m
语句组m
otherwise
语句组m+1
end
其他流程控制语句(1)break命令(2)continue命令(3)return命令(4)pause命令。
MATLAB程序控制结构
例: 从键盘输入若干个数,当输入0时结束输入,求这 些数的平均值和它们之和。 程序如下: sum=0; n=0; val=input('Enter a number (end in 0):'); while (val~=0) sum=sum+val; n=n+1; val=input('Enter a number (end in 0):'); end if (n > 0) sum mean=sum/n end
2.数据的输出
MATLAB提供的命令窗口输出函数主要有 disp函数,其调用格式为 disp(输出项) 其中输出项既可以为字符串,也可以为矩阵。 exp: k=1:5; disp(k) disp(k(1:3)) disp('一维数组')
例 : 求一元二次方程ax2 +bx+c=0的根。 程序如下: a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; %disp(['x1=',num2str(x(1)),',x2=',num2str(x(2) )]); disp('x='); disp(x);
(3) 多分支if语句: if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组n end 语句用于实现多分支选择结构。
exp: x=[9,6,3,2,5,8,7,4,1]; i=2; j=3; if i==j x(i,j)=0; elseif abs(i-j)==1 x(i,j)=-1; else x(i,j)=10; end x
MATLAB程序结构——选择结构.
通信技术专业教学资源库 深圳职业技术学院
语句组1
elseif 可以出现多个,但 else 只能有一个!
)
表达式1 假 表达式2 假 表达式m 真 语句组2 语句组m 语句组m+1 假
( 语句组2)
表达式2
真
(语句组m+1)
end
x3 x 0 例:从键盘输入自变量x的值,由分段函数给出y 的值。程序: y 2 5 x x0
MATLAB运行: >> ex1 请输入成绩等级:'A' X= A 该生成绩为95分 >> ex1 请输入成绩等级:'R' X= R 输入等级有误
disp(‘该生成绩为75分’);
case ‘D’ disp(‘该生成绩为65分’); case ‘E’
disp(‘该生成绩为不及格’);
otherwise disp(‘输入等级有误’); end
表达式 语句组 表达式
假
)
真 语句组
)
if语句 双分支
if ( else
表达式
)
真 语句组1
(语句组1)
表达式
假 语句组2
( 语句组2 )
end
if ( 表达式1) if语句 多分支: ( ) 语句组1
elseif ( ... ... elseif( 表达式m ) ( 语句组m ) else
5matlab的程序结构
3 4 5
4 5 6
天津农学院基础科学系 朱文新
2013-8-15
利用break跳出所在级别的循环
例: for i=1:3 a=i; break end a a= 1
2013-8-15
天津农学院基础科学系 朱文新
while — end 循环
while循环将循环体中的语句循环执行不定次数。 语法为:while 表达式 循环体语句 end 表达式一般是由逻辑运算和关系运算以及一般运算组成的, 以判断循环的进行和停止;只要表达式的值 非0,继续循环; 直到表达式值为0,循环停止。
6.按递推公式
2013-8-15
天津农学院基础科学系 朱文新
只给出难点部分的参考程序: 上节课使用第一种疗法的病人数据——矩阵p1已经求出, 求测量了6次cd4浓度的病人数据p1_6。 解决方法:建立了两个函数 1.sameid.m,格式sd=sameid(id) %id:病人id号的向量,例如id=[2 2 2 4 4 5 5 5 5 5 5 8 9 9 9 9 9 9]; %sd:相邻相同id号的数目,id如上,则sd=[3 2 6 1 6]; 2.sameid6.m,格式sd6_p=sameid6(sd) %sd:相邻相同id号的数目, %详见sameid.m,id=[2 2 2 4 4 5 5 5 5 5 5 8 9 9 9 9 9 9] %则sd=[3 2 6 1 6] %sd6_p,id号出现6次的病人在id这个向量中的位置 2013-8-15 天津农学院基础科学系 朱文新 %若id,sd如上所示,sd6_p=[6 7 8 9 10 11 13 14 15 16 17 18]
matlab 程序组织结构
Matlab程序组织结构引言Matlab是一款强大的科学计算软件,广泛应用于科学、工程、经济和金融等领域。
在编写Matlab程序时,良好的程序组织结构对于代码的可读性、可维护性和可扩展性都至关重要。
本文将从程序文件的组织方式、函数的使用和模块化设计等方面,来探讨如何有效地组织Matlab程序。
程序文件组织结构良好的程序文件组织结构可以帮助提高代码的可读性和可维护性。
以下是一些常用的组织方式:单一脚本文件最简单的方式是将所有代码都写在一个脚本文件中。
这种方式适用于简单的程序,但对于复杂的程序来说,单一脚本文件会导致代码混乱不堪,不利于代码的维护和复用。
分模块脚本文件将程序按照功能或模块进行拆分,每个模块写在一个独立的脚本文件中。
这种方式使得代码的结构更加清晰,便于不同模块的代码复用。
但如果模块之间有大量的共享变量,可能会导致命名冲突和代码耦合度过高的问题。
函数文件和主脚本文件将程序的主要逻辑写在一个主脚本文件中,而将具体的功能封装在不同的函数文件中。
这种方式既保留了模块化的优点,又能够有效地管理变量作用域和代码复用。
主脚本文件通过调用函数来完成程序的主要任务。
类和方法使用面向对象的方式来组织程序。
将相关的功能封装在类中,每个类对应一个文件。
类内的方法可以完成不同的具体功能,通过实例化对象来调用相应的方法。
这种方式适合于程序的复杂度较高或者需要重复使用的部分。
函数的使用函数是Matlab程序的基本组成单元,良好地使用函数可以使程序更加模块化和易于维护。
以下是一些关于函数的使用的建议:函数命名函数的命名应该具备描述性,能够清楚地表达函数的功能。
避免使用不具备意义或是含糊不清的命名。
函数输入参数与输出结果合理地定义函数的输入参数和输出结果,可以增加函数的通用性和灵活性。
输入参数可以用来控制函数的行为,输出结果可以将函数的运算结果返回给调用者。
函数文档注释为函数编写文档注释是一种良好的编程实践。
注释可以提供函数的详细说明,包括输入参数、输出结果以及函数的功能和用法。
(完整版)matlab中使用结构体汇总
matlab中使用结构体结构(struct)数组要在MALTAB中实现比较复杂的编程,就不能不用struct类型。
而且在MATLAB中实现struct比C中更为方便。
4. 3.1 结构数组的创建MATLAB提供了两种定义结构的方式:直接应用和使用struct函数。
1. 使用直接引用方式定义结构与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。
比如建立一个复数变量x:x.real = 0; % 创建字段名为real,并为该字段赋值为0x.imag = 0 % 为x创建一个新的字段imag,并为该字段赋值为0 x =real: 0imag: 0然后可以将旗动态扩充为数组:x(2).real = 0; % 将x扩充为1×2的结构数组x(2).imag = 0;在任何需要的时候,也可以为数组动态扩充字段,如增加字段scale:x(1).scale = 0;这样,所有x都增加了一个scale字段,而x(1)之外的其他变量的scale字段为空:x(1) % 查看结构数组的第一个元素的各个字段的内容ans =real: 0imag: 0scale: 0x(2) % 查看结构数组的第二个元素的各个字段的内容,注意没有赋值的字段为空ans =real: 0imag: 0scale: []应该注意的是,x的real、imag、scale字段不一定是单个数据元素,它们可以是任意数据类型,可以是向量、数组、矩阵甚至是其他结构变量或元胞数组,而且不同字段之间其数据类型不需要相同。
例如:clear x; x.real = [1 2 3 4 5]; x.imag = ones(10,10);数组中不同元素的同一字段的数据类型也不要求一样:x(2).real = '123';x(2).imag = rand(5,1);甚至还可以通过引用数组字段来定义结构数据类型的某字段:x(3).real = x(1); x(3).imag = 3; x(3)ans =real: [1x1 struct]imag: 3下面看一个实际的例子来熟悉直接引用方式定义与显示结构。
- 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)最大值、最小值、各数之和。