实验2 M文件和流程控制语句[参考答案]

合集下载

实验三_M_文件及_MATLAB_程序设计与调试

实验三_M_文件及_MATLAB_程序设计与调试

实验三M 文件及MATLAB 程序设计与调试一、实验目的全面掌握在MA TLAB 下进行程序设计的有关问题,具体涉及到M 脚本文件和M 函数文件的编写、全局和局部变量的使用、流程控制结构、提高程序执行效率的设计技术、程序调试等问题。

二、实验内容1、关于M 脚本文件和M 函数文件MATLAB 的M 文件有两类:脚本文件和函数文件。

(1)脚本文件——将原本要在MATLAB 的指令窗口中直接输入的语句,放在一个以.m 为后缀的,称为脚本文件中。

有了脚本文件,可直接在MATLAB 中输入脚本文件名(不含后缀)。

MATLAB 会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在MATLAB 中直接输入语句的结果完全一致。

(2)函数文件——它的第一行必须是函数定义行。

M 函数文件由5 部分构成:◆函数定义行◆H1 行◆函数帮助文本◆函数体◆注释注意:在函数文件中,除了函数定义行之外,其它部分都是可以省略的。

但作为一个函数,为了提高函数的可用性,应加上H1 行和函数帮助文本,为了提高函数的可读性,应加上适当的注释。

例如:function y = mean(x)% MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X.% For matrices, MEAN(X) is a row vector containing the mean value of each column.[m,n]=size(x);if m==1% Determine whether x is a vectorm=n;endy = sum(x)/m;①函数定义行:function y = mean(x)function 为函数定义的关键字,mean 为函数名,y 为输出变量,x 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。

matlab编程2

matlab编程2
18
第二节 程序控制结构
选择结构
选择结构 是根据给定的条件成立或不成立,分别执 行不同的语句. Matlab 用于实现选择结构的语句有 if -end语句 和 switch-end 语句
19
第二节 程序控制结构
if -end条件语句
单分支结构
if 条件表达式 语句组 end
双分支结构
If 条件表达式

input应用时,注意:
输入字符串时必须带单引号 单引号的输出:两个连续的单引号 若输入的是数、数学表达式,则in不能出现
11
第二节 程序控制结构
disp
数据的输出:disp
disp(X)
输出变量 X 的值,X 可以是数值矩阵或字符串
一次只能输出一个变量

>> A='Hello, Tom!'; >> disp(A) >> B=[1 2 3; 4 5 6; 7 8 9]; >> disp(B)
x=input(‘输入初值x=’);
n=input(‘输入迭代次数=’);
y(1)=x ; for k=1:n x=1/(x+1); y(k)=x;
function y=dd2(x,n) y(1)=x ; for k=1:n x=1/(x+1); y(k)=x; end
end
y
解:程序如下: function y=f(x)

语句组2
……
K=值m? 否 语句组n

语句组m
switch-end语句的 下一句
第二节 程序控制结构
switch-end 语句
关于 switch-end 语句的几点注解:

MA AB实验报告

MA AB实验报告

MATLAB实验报告姓名:专业:学号:实验一MATLAB环境的熟悉与基本运算一、实验目的:1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识:1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。

2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。

MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符表2MATLAB算术运算符表3MATLAB关系运算符表4MATLAB逻辑运算符表5MATLAB特殊运算4.MATLAB的一维、二维数组的寻访表6子数组访问与赋值常用的相关指令格式5.MATLAB的基本运算表7两种运算指令形式和实质内涵的异同表6.MATLAB的常用函数表8标准数组生成函数表9数组操作函数三、实验内容1、学习安装MATLAB软件。

2、学习使用help命令,例如在命令窗口输入helpeye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)3、学习使用clc、clear,观察commandwindow、commandhistory和workspace等窗口的变化结果。

4、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。

注意:每一次M-file的修改后,都要存盘。

四、实验结果练习A:(1)helprand,然后随机生成一个2×6的数组,观察commandwindow、commandhistory和workspace等窗口的变化结果。

EDA实验--流程控制语句

EDA实验--流程控制语句

实验二流程控制语句(if-else)验证试验一、实验目的:熟悉Quartus软件的基本操作,掌握用Quartus软件验证VHDL语言。

二、实验内容:给出的参考代码不是完整代码,根据实际情况补充完整代码,综合代码,自己设计仿真文件,来验证参考代码最后一个else的含义。

三、实验原理:If-else可以允许在一个语句中出现多重条件,每一个“if”语句都必须有一个对应的“end if”语句。

“if”语句可嵌套使用,即在一个if语句中可再调用另一个“if”语句。

四、实验步骤:1、在Quartus中输入如下程序:library ieee;use ieee.std_logic_1164.all;entity lbz2 isport(n : in std_logic;m : in std_logic_vector(7 downto 0);a : out std_logic_vector(2 downto 0);d : out std_logic);end;architecture behavior of lbz2 isbeginprocess(n,m)beginif n='1' thenif (m(7)='1') thena<="111";d<='0';elsif (m(6)='1') thena<="110";d<='0';elsif (m(5)='1') then a<="101";d<='0';elsif (m(4)='1') then a<="100";d<='0';elsif (m(3)='1') then a<="011";d<='0';elsif (m(2)='1') then a<="010";d<='0';elsif (m(1)='1')then a<="001";d<='0';elsif (m(0)='1') then a<="000";d<='0';elsea<="000";d<='1';end if;end if;end process;end;调试程序如下图所示:如图可以得出程序调试过程中午错误,所以根据调试程序生成如下综合电路图:。

流程控制语句实验方案

流程控制语句实验方案

流程控制语句实验方案下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!一、实验目的。

通过实验,深入理解和掌握流程控制语句的使用方法,包括条件语句(if-else、switch)、循环语句(for、while、do-while)等,提高编程能力和逻辑思维能力。

流程控制_参考答案

流程控制_参考答案

一、【必做题】1.输入一个数字,判断是一个奇数还是偶数if(i!=0){System.out.println("0");}else if(i%2==1){System.out.println("奇数");}else if(i%2==0){System.out.println("偶数");}2.编写程序,判断一个变量x的值,如果是1,输出x=1,如果是5,输出x=5,如果是10,输出x=10,除了以上几个值,都输出x=none。

(答案SwitchDemo.java)int x=1;switch(x){case 1:{System.out.println("x=1");break;}case 5:{System.out.println("x=5");break;}case 10:{System.out.println("x=10");break;}default:{System.out.println("none");break;}}•Switch说明✓表达式的值只可以接受int、byte、char、short 型,不接受其他类型的值✓不允许有重复的case取值✓ switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置,开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,直到碰到break语句为止3.判断一个数字是否能被5和6同时整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能被5或6整除,(打印不能被5或6整除)System.out.println("***********请输入一个整数*********");Scanner scanner = new Scanner(System.in);int value = scanner.nextInt();if (value % 5 == 0 && value % 6 == 0) {System.out.println("输入的数字" + value + "能被5和6整除");} else if (value % 5 == 0) {System.out.println("输入的数字" + value + "能被5整除");} else if (value % 6 == 0) {System.out.println("输入的数字" + value + "能被6整除");} else {System.out.println("输入的数字不能被5或者6整除");}4.输入一个年份,判断这个年份是否是闰年int year=2012;if(year%4==0&&year%100!=0||year%400==0){System.out.println("闰年");}else{System.out.println("不是闰年");}5.输入一个0~100的分数,如果不是0~100之间,打印分数无效,根据分数等级打印A,B,C,D,Eint score = 999;if(score<=100&&score>=90)System.out.println("A");else if(score<90&&score>=80)System.out.println("B");else if(score<80&&score>=70)System.out.println("C");else if(score<70&&score>=60)System.out.println("D");else if(score<=70&&score>60)System.out.println("E");elseSystem.out.println("分数无效");6.从命令行传入3个整数,求3个整数的和、积、最大值、最小值、平均值int[] a = new int[3];int max,min,add,pro,avr;for(int i=0;i<3;i++) {a[i] = Integer.valueOf(args[i]);}max = a[0];min = a[0];add = a[0];pro = a[0];for(int i=1;i<3;i++) {if(max<a[i]){max = a[i];}if(min>a[i]){min = a[i];}add = add+a[i];pro = pro*a[i];}avr = add/3;System.out.println("最大值 = "+max);System.out.println("最小值 = "+min);System.out.println("和 = "+add);System.out.println("积 = "+pro);System.out.println("平均值 = "+avr);7.试写一个三位数,从小到大排列,然后再从大到小排列。

实验1 Matlab基本操作、M文件和流程控制语句

实验1 Matlab基本操作、M文件和流程控制语句

实验1 Matlab 基本操作、M 文件和流程控制语句一、实验目的1、熟悉Matlab 的开发环境、熟悉Matlab 中的运算符。

2、掌握建立矩阵的方法,掌握相关命令操作。

3、理解命令M 文件和函数M 文件的区别。

掌握M 文件的创建和运行。

4、掌握流程控制语句的使用,掌握程序调试的基本方法。

二、实验内容1、计算以下表达式的值,将结果按不同格式输出。

掌握format 命令的使用方法。

(1)26)3sin(3.13π=y (2))1ln(212x x y ++=,其中⎥⎦⎤⎢⎣⎡-+=545.0212i x (3)23.0ln )3.0sin(23.03.0x x e e y x x +++-=-,其中0.3,9.2,8.2,,8.2,9.2,0.3 ---=x 2、已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=72330213176538773443412B A , 求下列表达式的值:(1) A+6*B 和A-B+I(2) A*B 和A.*B(3) A^3和A.^3(4) A/B 和B\A(5) [A,B]和[A([1,3],:);B^2]3、已知)20()30()40(f f f y +=, (1)当)5ln(10)(2++=n n n f 时,求y 的值。

(2)当)1(*4*33*22*1)(+++++=n n n f 时,求y 的值。

4、请分别用if 和switch 语句实现。

输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。

其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。

5、已知⎪⎪⎩⎪⎪⎨⎧>+-=======---3,23,12,01,1321321n f f f f n f n f n f n n n n 求1001~f f 中:(1) 这100个数中的最大值,最小值,这100个数的总和。

MATLAB实验报告

MATLAB实验报告

实验二MATLAB语言基础一、实验目的基本掌握MA TLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。

了解字符串的操作。

二、实验内容1.向量的生成与运算;2.矩阵的创建、引用和运算;3.多维数组的创建及运算;4.字符串的操作。

三、实验步骤1.向量的生成与运算①向量的生成向量的生成有三种方法:直接输入法:生成行向量、列向量;冒号表达式法:变量=初值:间隔(可正可负):终值函数法:使用linspace线性等分函数,logspace对数等分函数。

格式为:linspace(初值,终值,个数)Logspace(初值,终值,个数), 初值及终值均为10的次幂。

②向量的运算A=[1 2 3 4 5],b=3:7,计算两行向量的转置,两行向量人加、减,两列向量的加、减;向量的点积与叉积。

a=[1 2 3 4 5];b=3:7;a =1 2 3 4 5b =3 4 5 6 7at=a',bt=b'at =12345bt =34567e1=a+b,e2=a-be1 =4 6 8 10 12 e2 =-2 -2 -2 -2 -2 f1=at+bt,f2=at-btf1 =4561012f2 =-2-2-2-2-2g1=dot(a,b),g2=a*bt>> g1=dot(a,b),g2=a*btg1 =85g2 =85g4=a.*b>> g4=a.*bg4 =3 8 15 24 35A=1:3;B=4:6;g3=cross(A,B)>> g3=cross(a,b)g3 =-3 6 -3注意:g1和g2的结果是否相同,为什么?g4的结果与g1和g2结果是否一样,为什么?g1和g2的结果相同,因为两者是同一种运算;g4与g1和g2不相同,因为两者一个是点乘一个是叉乘,运算不一样。

2.矩阵的创建、引用和运算矩阵是由n×m元素构成的矩阵结构。

C语言程序设计实验指导

C语言程序设计实验指导

C语⾔程序设计实验指导C语⾔实验指导吴元斌编重庆三峡学院计算机科学与⼯程学院实验总体说明⼀、实验的⽬的学习C语⾔程序设计不能满⾜于学会C语⾔的语法规则,能看懂书上的程序,⽽应当熟练地掌握程序设计的全过程,即独⽴编写源程序、独⽴上机调试、独⽴运⾏程序和分析结果。

上机实验的⽬的,不仅仅是为了验证教材和讲课的内容,或者验证⾃⼰所编写的程序的正确与否。

实验的主要⽬的⾄少包括如下⼏点:1.加深对讲授内容的理解,尤其是⼀些语法规定。

通过实验来掌握语法规则是⾏之有效的⽅法。

2.熟悉所⽤的开发平台。

3.学会上机调试程序。

通过反复调试程序掌握根据出错信息修改程序的⽅法。

4.通过调试完善程序。

⼆、实验前的准备1.了解所⽤的计算机系统(包括C语⾔开发平台)的性能和使⽤⽅法。

2.复习和掌握与本实验有关的教学内容。

3.准备好上机所需的程序,切忌不编程或抄别⼈的程序去上机。

4.对程序中出现的问题应事先估计,对程序中⾃⼰有疑问的地⽅应先作上记号,以便上机时给予注意。

5.准备好调试程序和运⾏程序所需的数据。

三、实验过程中应注意的问题1.上机实验应⼀⼈⼀组,独⽴实验。

2.上机过程中出现的问题,⾸先⼒争⾃⾏解决,若不⾏可求助于同学和⽼师。

尤其对“出错信息”,应善于分析判断,找出出错的⾏,然后检查该⾏或其上⼀⾏。

3.记录好上机过程中出现的各种问题和解决的⽅法。

4.上机实验平台的使⽤⽅法见附录A和附录B。

5.上机结束后,应及时写出实验报告(主要内容:题⽬、程序清单与结果、)。

四、完成实验报告实验报告包括以下内容:1.实验⽬的2.实验内容3.程序清单、运⾏结果4.调试过程记录5.总结经验与教训:对运⾏结果的分析,以及本次调试程序所取得的经验。

实验⼀C语⾔编程初步⼀、⽬的和要求1.熟悉Visual C++ 6.0开发环境(或Eclipse+MinGW),掌握编辑、编译、连接和运⾏C程序的⽅法。

2.通过运⾏简单的C程序,初步理解C源程序的特点和编程⽅法。

matlab实验报告2

matlab实验报告2

第二次上机作业准备&要求:1、 运行课件第三章(课本第四章)讲过的例子,掌握Matlab 的流程控制语句、函数及脚本文件的编程、调试方法。

2、 本次作业(4~12题)要求全部写M 文件;3、 题目要求未明确要求写脚本文件还是函数文件的,学生自己决定是写脚本文件还是函数文件。

只要能够实现要求。

4、 列出第二章课堂上出现过的所有函数,知道它们的作用并试着调用这些函数。

作业:1. 继续完成第一次上机实验未完成的作业。

2. 分析脚本M 文件及函数M 文件的区别。

(1)脚本文件没有输入参数,也不返回输出参数,而函数文件可以带输入参数,也可以返回输出参数。

(2)脚本文件对MATLAB 工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数文件中定义的变量为局部变量,当函数文件执行完毕时。

这些变量被清除。

(3)脚本文件可以直接运行。

在MATLAB 命令行窗口输入脚本文件的名字,就会顺序执行脚本文件中的命令。

而函数文件不能直接运行,要以函数调用的方式来调用。

3. 已知⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=7613870451A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=023352138B ,求下列表达式的值,并注意第(2)(3)小题表达式的结果有何特点:(1)B A 6+ 、I B A +-2(其中I 为单位阵);>> A+6*Bans =47 23 -1012 37 26-15 73 7>> A^2-B+Ians =-18 -217 1722 533 10921 867 526(2)A*B、A.*B、B*A、B.*A;>> A*Bans =14 14 16-10 51 21125 328 180>> A.*Bans =-8 15 40 35 24-9 122 0>> B*Aans =-11 0 -157 228 533 -1 28>> B.*Aans =-8 15 40 35 24-9 122 0(3)A/B、B\A、A./B、B.\A;A/Bans =1.2234 -0.92552.9787-0.9468 2.3511 -0.95744.6170 3.8723 13.8936>> B\Aans =-0.5106 -8.6170 -1.12770.7340 17.5745 1.8085-0.8830 -21.2128 0.4043>> A./Bans =-0.1250 1.6667 4.00000 1.4000 2.6667-1.0000 30.5000 Inf>> B.\Aans =-0.1250 1.6667 4.00000 1.4000 2.6667-1.0000 30.5000 Inf(4)[A, B]、[A([1 3],:);B^2]。

MATLAB程序流程控制 习题答案

MATLAB程序流程控制 习题答案
5.有以下程序段:
)。A
10次
B.循环是无限循环
D.循环体语句执行一次
x=reshape(1:12,3,4);
m=0;
n=0;
for k=1:4
if x(:,k)<=6 m=m+1;
else
n=n+1;
end
end
则m和n的值分别是(
A.6 6 B
)O C
.2 1 C
)。A
6.调用函数时,如果函数文件名与函数名不一致,则使用(

习题 4
一、选择题
1.下列关于脚本文件和函数文件的描述中不正确的是(
A.函数文件可以在命令行窗口直接运行
B.去掉函数文件第一行的定义行可转变成脚本文件
C.脚本文件可以调用函数文件
D.函数文件中的第一行必须以
2.下列程序的输ห้องสมุดไป่ตู้结果是(y=10;
if y==10
y=20; elseif y>0
y=30 end
if rem(k(j),2)~=0 s=s+k(j);
end
end
end
25
D.dbstack
.m的文件中,该文件称
变量是函数间传
错误。MATLAB^序调试方法有两种,一是利用 行程序调试。
语法,逻辑,调试函数,调试工具 三、应用题
1.写出下列程序的输出结果。
s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];
for k=a
for j=1:4
6.应用程序的错误有两类,一类是错误,另一类是运行时的错误,即
fun ctio n [x,y,z]=f1(a,b,c)

对m语言流程控制语句语义分析方法的

对m语言流程控制语句语义分析方法的

对条件语句和循环语句的语义分析方法进行 了详细描述,包括对条件表达式和循环条件 的语法和语义分析、对可能出现的异常情况 的处理等。
在进行流程控制语句的语义分析时 ,需要综合考虑各种因素,包括语 法、语义、输入数据的有效性、异 常情况处理等,以确保分析的全面 性和准确性。
01
m语言流程控制语句语义 分析方法的实现与应用
实现方法
01
基于语法分析
利用语法分析技术对m语言流程控制 语句进行解析,提取语法结构并建立 抽象语法树(AST)。
02
语义规则定义
根据m语言的语义规则,定义相应的 语义规则,对AST进行遍历和检查。
03
实现语义分析函数
根据语义规则,实现相应的语义分析 函数,对AST进行进一步的分析和验 证。
应用案例
m语言定义与特点
m语言定义
m语言是一种面向矩阵和数组的高级编程语言,专门为科学计算、数值分析和 数据可视化等应用领域设计。
特点
m语言具有简单易学、高效灵活、表达力强等优点,它支持矩阵和数组运算, 提供丰富的绘图函数和工具库,适用于大规模数据处理和复杂算法的实现。
m语言的发展历程
m语言起源
m语言起源于1970年代,最初是由美国国家仪器公司开发的一种 用于数据分析和可视化的编程语言。
对m语言流程控制语句语义 分析方法
2023-11-11
目录
• m语言概述 • m语言流程控制语句 • m语言流程控制语句语义分析方
法 • m语言流程控制语句语义分析方
法的实现与应用
目录
• m语言流程控制语句语义分析方 法的优势与不足
• m语言流程控制语句语义分析方 法的实验与验证
01
m语言概述

实验五---M文件的编写与调试(答案)

实验五---M文件的编写与调试(答案)

MATLAB实验报告
专业班级
姓名
学号
成绩评定
电气与信息学院
和谐勤奋求是创新
实验教学考核和成绩评定方法
1.课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。

实验成绩不合格者,不能参加课程考试,待补做合格后方能参加考试。

2.单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。

3.实验考核内容包括:1〕实验预习;2〕实验过程〔包括实验操作、实验记录和实验态度、表现〕;3〕实验报告;权重分别为0.2 、0.4 、0.4;原则上根据上述三个方面进行综合评定。

学生未取得1〕和2〕项成绩时,第3〕项成绩无效。

4.实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出综合成绩,反馈实验中出现的问题。

实验成绩在教师手册中有记载。

实验报告主要内容
一.实验目的
二.实验仪器及设备
三.实验原理
四.实验步骤
五.实验记录及原始记录
六.数据处理及结论
七. 思考题
八.实验体会〔可选项〕
注:1. 为了节省纸张,保护环境,便于保管实验报告,统一采用A4纸,实验报告建议双面打印〔正文采用宋体五号字〕或手写,右侧装订。

2. 实验类别指验证、演示、综合、设计、创新〔研究〕、操作六种类型实验。

3. 验证性实验:是指为了使学生稳固课程基本理论知识而开设的强调演示和证明,注重实验结果〔事实、
概念或理论〕的实验。

4. 综合性实验:是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。

5. 设计性实验:是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。

实验2 M文件和流程控制语句[参考答案]

实验2 M文件和流程控制语句[参考答案]

实验2 M 文件和流程控制语句参考答案1、 编写一个函数文件fun.m ,用于求∑==101n n n a ,然后在命令文件中给定a 的值,调用函数fun 。

建立函数M 文件fun.mfunction s=fun(a)s=0; for i=1:10s=s+a^n;endMATLAB 命令:>> a=3;>> s=fun(a)2、 编写一个函数文件,求小于任意自然数n 的斐波那契数列各项。

Fibnacci 数列定义如下:⎪⎩⎪⎨⎧>+===--2,112121n f f f f f n n n建立函数M 文件fib.mfunction f=fib(n)if n==1f=1;endif n==2f(1)=1;f(2)=2;endif(n>2)f(1)=1;f(2)=2;for i=3:nf(i)=f(i-1)+f(i-2);endend3、 编制一个解数论问题的函数文件:取任意整数,若是偶数,则除以2,否则乘3加1,重复此过程,直到整数变为1。

建立函数M 文件collatz.mfunction c=collatz(n)% collatz% Classic “3n+1” Ploblem from number theoryc=n;while n>1if rem(n,2)==0 %返回n/2的余数n=n/2;elsen=3*n+1;endc=[c n];end4、编写一个函数M文件([y1,y2]=fun(x1,x2)),使之可以处理1个或两个输入参数,一个或两个输出参数,满足如下条件:当只有一个输入参数x1时:如果只有一个输出参数y1,则y1=x1;如果有两个输出参数y1,y2,则y1=y2=x1/2;当有两个输入参数x1,x2时:如果只有一个输出参数y1,则y1=x1+x2;如果有两个输出参数y1,y2,则y1=y2=(x1+x2)/2; 建立函数M文件fun.mfunction [y1,y2]=fun(x1,x2)if nargin=1&nargout=1y1=x1;elseif nargin=1&nargout=2y1=x1/2;y2=y1;elseif nargin=2&nargout=1y1=x1+x2;elseif nargin=2&nargout=2y1=(x1+x2)/2;y2=y1;end5、A=rand(3,4)<0.7, 编程实现查找矩阵A的每行中第一个0元素所在的列。

(完整版)第4章MATLAB程序流程控制_习题答案

(完整版)第4章MATLAB程序流程控制_习题答案

第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。

AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。

Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。

CA.3 B.4 C.5 D.104.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。

AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。

CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。

A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。

BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则fn是()。

AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是()。

D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。

第六章M文件和控制流

第六章M文件和控制流

第六章M⽂件和控制流《MATLAB仿真与应⽤》实验报告第六章 M ⽂件和控制流⼀、实验⽬的1. 熟悉运⽤MATLAB 的控制流指令.2. 理解M 脚本⽂件和函数⽂件的本质区别.3. 能够运⽤所学知识,编制程序解决⼀般的计算问题.⼆、实验内容1、单分⽀控制 if expr-end2、双分⽀控制 if expr-else-end3、多分⽀控制 if expr-elseif expr2-else-end4、输⼊函数 function y=5、控制结构 switch-case6、给定的数值、字符串标量 value_17、for 循环 for()-end8、while 循环while()-end9、hilbert 矩阵 a(i,j)=1/(i+j-1)10、将控制权交给键盘 v=input (‘’)11、终⽌循环 break12、使程序暂停执⾏pause13、程序暂停n 秒后再继续执⾏ pause (n )14、创建数组S=struct (‘’)三、思考练习题1. 分别⽤for 和while 语句编写计算K= 6326302......2212++++=∑=i i 的程序,另编写⼀种不⽤循环的计算程序。

sum=0for i=0:63sum=sum+2^i;endSumsum =1.8447e+19i=0;sum=0;while 1sum=sum+2^i;i=i+1;if i>63break;endendsumsum =1.8447e+19>> x=1*(1-2^64)/(1-2)x =1.8447e+192. 计算∑=150)(x x f ,f(x)= -x x 2430 101055>≤<≤x x xfunction y=exm01(x)n=length(x);for k=1:nif x(k)<=5y(k)=0;elseif 5y(k)=(x(k)-3)/4;elsey(k)=2*x;endendX=0:1:15;y=exm01(x);>> sum=0;for a=1:16sum=sum+y(a);end>> sumsum =18.75003.有⼀群鸡和兔⼦,加在⼀起头的数量是36,脚的数量是100,编程序解答鸡和兔⼦数量各是多少?M=input(‘总个数’,’s’);N=input(‘脚的总只数’,’s’);Syms x y;[x,y]=solve(‘x+y=M’,’2*x+4*y=N’,’x’,’y’)X=2*m-n/2Y=n/2-m4.产⽣20个两位随机整数,输出其中⼩于平均值的奇数。

M文件与程序流程控制

M文件与程序流程控制

实验三M文件与程序流程控制主要内容:M文件的编写,选择结构语句与循环语句。

一、M文件:M文件分为:命令文件和函数文件。

命令文件没有输入参数和输出参数,只是一些命令行的组合。

函数文件可以输入参数,也可以返回输出参数。

M文件的编写通过文本编辑器实现。

打开文本编辑器方式:三种方法。

edit1、x=linspace(0,2*pi);命令文件y=sin(x);plot(x,y) 见tt.m2、文件的执行顺序:1.检查此函数是否为子函数;2.检查此函数是否为私有目录的函数3.从所设定的搜索路径搜索此函数3、目录操作相关命令pwd 可返回当前工作目录dir 可显示当前工作目录下的内容。

Cd 可改变工作目录设定搜索路径二、程序流程控制1.顺序结构:例1.建立一个命令文件将变量a,b的值交换a=1:10;b=11:18;c=a;a=b;b=c;a,b 见exchange.m2、循环结构:(1)F or 循环语法用于循环次数已知的情况For 变量=变量表达式end例2:产生一个长度为6的调和序列(Harmonic Sequence)x=zeros(1,6); format rat 变为分数for i=1:6 format 改回默认值x(i)=1/i; 见har.mendformat ratx例3:产生一个6阶Hilbert矩阵,hij=1/(i+j-1)x=zeros(6); 使用zeros命令预先配置了以适当大小的矩阵,若不预先for i=1:6 配置矩阵,程序仍可执行,但此时matlab需要动态的增加for j=1:6 或减少)矩阵的大小,因而降低了程序的执行效率。

所以 h(i,j)=1/(i+j-1); 在使用一个矩阵时,若能在事前知道大小。

则最好先使用end zeros.ones等命令来预先配置矩阵所需的内存大小。

Endformat ratdisp(h) 显示数组,见hib.m(2)W hile循环语法:While 条件式一般用于循环次数未知的情况表达式end续例1:x=zeros(1,6);i=1;while i<=6x(i)=1/i;i=i+1;endformat ratx 见har2.m例4.找出最小的n,使得n!>10^100n=1;while prod(1:n)<1e100n=n+1;endfprintf('%g!=%e>1e100\n',n,prod(1:n));见zui.m函数fprintf把数据转换成字符并写入文件或屏幕上可以采用格式控制字符串来控制字符串写出的格式,常用的格式控制有;%e,表示写成指数形式,%f表示写成一般的浮点数形式,%g表示自动选择指数或浮点数的简短格式。

实验2 M文件的编写、函数

实验2 M文件的编写、函数

【例5】显示switch-case的程序。生成一个 在[0, 6]上的均匀分布的随机数,以此作 为掷骰子出现的点数,出现1,3,5显示奇数, 出现2,4,6显示偶数,出现0则显示错误.
函数名:example2_5.m disp('Play dice,please!') %提示输入信息 Num=round(6*rand) %利用round函数产生在[0,6]上 服从均匀分布的随机数 switch Num case {1,3,5}, disp('Odd') case {2,4,6}, disp('Even') otherwise, disp('You are out!') end
2第一行帮助行以开头作为lookfor指令搜索的行m文件及函数的编写3函数体说明及有关注解以开头用以说明函数的作用及有关内容4函数体语句函数体内使用的除返回和输入变量这些在function语句中直接引用的变量以外的所有变量都是局部变量即在该函数返回之后这些变量会自动在matlab的工作空间中清除掉
实验2 M文件及函数的编写
•无需修改程序
M文件及函数的编写
【例9 】函数的递归调用:阶乘
1.写好程序,存成my_fact.m文件 function k=my_fact(n) if n>1 k=n*my_fact(n-1); elseif n==0|n==1 k=1; else error(' U input a wrong parameter!') end 2.在command window中调用:num=my_fact(11) MATLAB函数为: prod(1:1000)
M文件及函数的编写
(4) 分支语句switch-case-otherwise Switch expression case case_1 (commands 1) case case_2 (commands 2) …… case case_k (commands k) otherwise, (commands) end 注意 在执行过程中,只 执行一个case后面的命令 并跳出开关, 程序在end后继续执行。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 M 文件和流程控制语句
参考答案
1、 编写一个函数文件fun.m ,用于求
∑==10
1n n n a ,然后在命令文件中给定a 的值,调用函数fun 。

建立函数M 文件fun.m
function s=fun(a)
s=0; for i=1:10
s=s+a^n;
end
MATLAB 命令:
>> a=3;
>> s=fun(a)
2、 编写一个函数文件,求小于任意自然数n 的斐波那契数列各项。

Fibnacci 数列定义如下:
⎪⎩⎪⎨⎧>+===--2,1
12121n f f f f f n n n
建立函数M 文件fib.m
function f=fib(n)
if n==1
f=1;
end
if n==2
f(1)=1;
f(2)=2;
end
if(n>2)
f(1)=1;
f(2)=2;
for i=3:n
f(i)=f(i-1)+f(i-2);
end
end
3、 编制一个解数论问题的函数文件:取任意整数,若是偶数,则除以2,否则乘3加1,
重复此过程,直到整数变为1。

建立函数M文件collatz.m
function c=collatz(n)
% collatz
% Classic “3n+1” Ploblem from number theory
c=n;
while n>1
if rem(n,2)==0 %返回n/2的余数
n=n/2;
else
n=3*n+1;
end
c=[c n];
end
4、编写一个函数M文件([y1,y2]=fun(x1,x2)),使之可以处理1个或两个输入参数,一个
或两个输出参数,满足如下条件:
当只有一个输入参数x1时:如果只有一个输出参数y1,则y1=x1;
如果有两个输出参数y1,y2,则y1=y2=x1/2;
当有两个输入参数x1,x2时:如果只有一个输出参数y1,则y1=x1+x2;
如果有两个输出参数y1,y2,则y1=y2=(x1+x2)/2; 建立函数M文件fun.m
function [y1,y2]=fun(x1,x2)
if nargin=1&nargout=1
y1=x1;
elseif nargin=1&nargout=2
y1=x1/2;
y2=y1;
elseif nargin=2&nargout=1
y1=x1+x2;
elseif nargin=2&nargout=2
y1=(x1+x2)/2;
y2=y1;
end
5、A=rand(3,4)<0.7, 编程实现查找矩阵A的每行中第一个0元素所在的列。

将结果存放着
一个列向量中。

建立脚本M文件
A=rand(3,4)<0.7
result=zeros(3,1)
for i=1:3
for j=1:4
if A(i,j)==0
result(i)=j
break;
end
end
end
result
6、(个人所得税纳税问题)根据中华人民共和国个人所得税法规定,公民的工资、薪金所
得应该依法缴纳个人所得税。

个人所得税计算公式为:在每个人的月收入中超过1600元以上的部分应该纳税,这部分收入称为应纳税所得额。

应纳税所得额实行分段累积税率,按如下税率表计算
1) y 和x 的函数关系,并编写函数M 文件实现此函数。

2) 调用函数,求月收入为6850和12300的应纳税额。

分析:当1600≤x 时不用缴税,y=0
当21001600≤<x 时,纳税部分是x-1600,税率是5%,所以%5)1600
(⨯-=x y 当36002100≤<x 时,500元按5%纳税,应缴纳25元,再多的部分,即x-2100,税
率是
建立函数M文件tax.m
function y=tax(x)
%points 收入分段点,t收入分段点应缴纳的税额rates收入段税率points=[0,1600,2100,3600,6600,21600,41600,61600,81600,101600,inf]; t=[0,0,25,175,625,3625,8625,14625,21625,29625];
rates=[0,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45];
n=length(points);
p=1; %收入x在points中的位置
for i=1:n-1
if x>points(i)&x<=points(i+1)
p=i;
break;
end
end
y=t(p)+(x-points(p))*rates(p);
y=tax(6850)。

相关文档
最新文档