实验3MATLAB程序设计
实验三_M_文件及_MATLAB_程序设计与调试
![实验三_M_文件及_MATLAB_程序设计与调试](https://img.taocdn.com/s3/m/0500d01e964bcf84b9d57b56.png)
实验三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 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。
实验3 MATLAB程序设计
![实验3 MATLAB程序设计](https://img.taocdn.com/s3/m/4e2f22be05a1b0717fd5360cba1aa81145318f55.png)
实验3 MATLAB程序设计实验3 MATLAB程序设计一、实验目的本实验的主要目的是通过实际的编程练习,掌握和熟悉MATLAB 程序设计的基本知识和技巧。
通过本实验的学习,能够灵活使用MATLAB进行程序设计,解决实际问题。
二、实验内容1. MATLAB语言基础在本部分,我们将介绍MATLAB语言的基本语法和常用函数的使用方法。
1.1. 变量定义和赋值在MATLAB中,可以通过简单的语法来定义和赋值变量。
例如,`a = 10;`表示将值10赋给变量a。
,MATLAB也支持定义矩阵和向量。
1.2. 数学运算MATLAB提供了丰富的数学运算函数,如加法、减法、乘法、除法等等。
通过这些函数,我们能够进行各种数学运算。
1.3. 条件语句和循环语句条件语句和循环语句在程序设计中非常重要。
在MATLAB中,我们可以使用if-else语句来进行条件判断,使用for循环和while 循环来实现循环操作。
2. MATLAB绘图功能MATLAB的绘图功能非常强大,可以用于绘制各种图形,如曲线图、散点图、柱状图等等。
2.1. 绘制曲线图在MATLAB中,通过`plot`函数可以绘制曲线图。
我们可以指定要绘制的曲线的x和y坐标,并可以设置其他参数,如线型、颜色等。
2.2. 绘制散点图通过`scatter`函数可以绘制散点图。
散点图用于展示数据的分布情况,非常直观。
2.3. 绘制柱状图通过`bar`函数可以绘制柱状图。
柱状图用于比较不同类别或不间点的数据。
3. MATLAB文件操作在实际的程序设计过程中,常常需要读取和写入文件。
MATLAB 提供了相关的文件操作函数,方便我们进行文件的读写操作。
3.1. 文件的读取通过`fopen`函数可以打开一个文件,通过`fread`函数可以读取文件的内容。
3.2. 文件的写入通过`fopen`函数可以创建一个文件,并通过`fwrite`函数将数据写入文件中。
三、实验步骤1. 编写MATLAB程序根据实验内容,编写MATLAB程序实现相应功能。
程序设计实验报告(matlab)
![程序设计实验报告(matlab)](https://img.taocdn.com/s3/m/2216a82ea9114431b90d6c85ec3a87c240288a1f.png)
程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。
实验内容:运用Matlab进行简单的程序设计。
实验方法:基于Matlab环境下的简单程序设计。
实验结果:成功掌握简单的程序设计和Matlab基本编程语法。
实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。
实验内容:在Matlab环境下进行多项式拟合和插值的计算。
实验方法:结合Matlab的插值工具箱,进行相关的计算。
实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。
实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。
实验内容:利用Matlab进行最小二乘法计算。
实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。
实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。
实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。
实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。
实验方法:基于Matlab的ODE工具箱,进行ODE求解。
实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。
总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。
通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。
这些知识和技能对我未来的学习和工作都将有着重要的帮助。
MATLAB程序设计与应用课后实验答案
![MATLAB程序设计与应用课后实验答案](https://img.taocdn.com/s3/m/9e04c6ee581b6bd97e19ead3.png)
实验一 MATLAB 运算基础欧阳家百(2021.03.07)0<r<lz 4 =<r 2 -11 <r < 2解./Ul •M 文件:z 1 =2*sin(85*pi/l 80)/( 1 +exp(2))x=[2 1+2衍;-.45 习;z2= l/2*log(x+sqrt(l +x A 2))a=-3.0:0.1:3.0; z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) t=0:0.5:2.5;z4=(t>=0&t<1 ).*(t.A 2)+(t>=1 &t<2)/(t.A 2-1 )+(t>=2&t<3) ?(t.A 2-2*t+1)运算结果:z1=2*sin(85*pi/180)/(1 +exp(2)) x=[2 1+2*i ;-.45 5]; z2=1/2*log(x+sqrt(1 +x A 2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) t=0:0.5:2.5; z4=(t>=0&t<1 ).*(t.A 2)+(t>=1 &t<2).*(t.A 2-1 )+(t>=2&t<3) .*(t.A 2-2*t+1) Z1 =1・先求下列表达式的值, 用情况并保存全部变量。
然后显示MATLAB 工作空间的使 2 sin 85° Z\ = ;-(1) 2 Zi= — ln(x +)⑵-2\其中严Y 5 = 12-0.45二映+ 0・3"¥1 + 2/ 5 _G = _3Q-29・・・,2・9,3・0t 2-2t + l 2<t<3其中 匸0:0.5250.2375 z2 =0.7114 ・ 0.0253i 0.8968 + 0.3658i0.6474 0.64700.63510.6119Columns 57 through 600.2139 + 0.9343i 1.1541 ・ 0.0044iz3 =Columns 1 through 4 0.7388+ 3.1416i 0.7696 3.1416i0.7871 +3.1416i0.7913 + 3.14161Columns 5 through 8 0.7822 + 3.14161 0.7602 3.1416i0.7254+ 3.1416i0.6784+ 3.1416iColumns 9 through 12 0.6196 + 3.14161 0.5496 3.1416i0.4688+ 3.1416i0.3780 + 3.14161Columns 13 through 16 0.2775+ 3.1416i 0.1680 3.1416i0.0497+ 3.1416i-0.0771 +3.1416iColumns 17 through 20 -0.2124 + 3.14161 -0.3566 3.1416i -0.51043.14161 -0.6752+ 3.1416iColumns 21 through 24 -0.8536 + 3.14161 -1.0497 3.1416i -1.27013.14161 -1.5271 +3.1416iColumns 25 through 28 -1.8436 + 3.14161 -2.2727 3.1416i -2.98373.1416i -37.0245Columns 29 through 32 -3.0017-2.3085Columns 33 through 36 -1.3575-1.1531Columns 37 through 40 -0.6567-0.5151Columns 41 through 44 -0.1374-0.0255Columns 45 through 48 0.26630.3478Columns 49 through 52 0.53790.5815Columns 53 through 56-1.8971-1.5978-0.9723-0.8083-0.3819-0.25610.07920.17660.42060.48410.6145 0.63660.5777 0.5327 0.4774 0.4126 Column 610.3388Z4 =0 0.2500 0 1.2500 1.0000 2.25002.已知:求下列表达式的值:(1)A+6*B和A-B+I (其中I为单位矩阵)(2)A*B 和A.*B(3)A A3 和A.A3(4)A/B 及B\A(5)[A,B]和[A([1,3],:);B7] 解.J UT •M文件:A=[12 34 -4; 34 7 87;3 65 7 ] ; B= [ 1 3 -1;2 0 3;3 -2 7]; A+6.*B A-B+eye (3)A*BA. *BA"3A. A3A/BB\A[A,B][A([l,3]z:);B^2]运算结果:A=[12 34 -4;34 7 87;3 65 7];B=[1 3-1;2 0 3;3 -2 7);A+6/BA-B+eye(3)A*BA/BA A3A.A3A/BB\A[A,B][A([1,3],:);BA2]ans =18 52 -1046 7 10521 53 49ans =12 31 ■332 8 840 67 1 ans =68 44 62309 ■72596 154 -5 241 ans =12 102 468 0 2619 - 130 49 ans =37226 247370 78688233824 48604 i 149188 600766454142 118820ans =1728 39304 -6439304 343 65850327 274625 343ans =16.4000 -13.6000 7.600035.8000 -76.2000 50.200067.0000 ■134.000068.0000ans =109.4000 ・131.2000 322.8000-53.0000 85.0000 -171.0000-61.6000 89.8000 -186.2000ans =12 34 ■4 1 3 -134 7 87 2 0 33 65 7 3 - -2 7ans =12 34 ■43 65 74 5 111 0 1920 -5 403•设有矩阵A和B(1)求它们的乘积C。
MATLAB程序的设计与应用(刘卫国编)课后实验答案
![MATLAB程序的设计与应用(刘卫国编)课后实验答案](https://img.taocdn.com/s3/m/7889365616fc700aba68fc0d.png)
实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin851z e =+(2) 21ln(2z x =,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--L (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5 解:2. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1) A+6*B 和A-B+I (其中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. 设有矩阵A 和B1234530166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦(1) 求它们的乘积C。
(2) 将矩阵C的右下角3×2子矩阵赋给D。
(3) 查看MATLAB工作空间的使用情况。
解:. 运算结果:4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2). 建立一个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。
MATLAB程序设计及应用(第二版)课后实验答案
![MATLAB程序设计及应用(第二版)课后实验答案](https://img.taocdn.com/s3/m/699ba6648f9951e79b89680203d8ce2f006665ab.png)
MATLAB程序设计及应⽤(第⼆版)课后实验答案Matlab 课后实验题答案实验⼀ MATLAB 运算基础1. 先求下列表达式的值,然后显⽰MATLAB ⼯作空间的使⽤情况并保存全部变量。
(1) 0122sin851z e=+ (2) 221ln(1)2z x x =++,其中2120.455i x +??=??-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=-- (4) 2242011122123t t z t t t t t ?≤,其中t =0:0.5:2.5 解:M ⽂件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2)) a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)2. 已知:1234413134787,2033657327A B --==-求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵) (2) A*B 和A.*B (3) A^3和A.^3 (4) A/B 及B\A(5) [A,B]和[A([1,3],:);B^2] 解:M ⽂件:A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; A+6.*BA-B+eye(3) A*B A.*B A^3 A.^3 A/B B\A [A,B][A([1,3],:);B^2]3. 设有矩阵A 和B1234166789101769,111213141502341617181920970212223242541311A B-???==-???(1) 求它们的乘积C 。
《MATLAB程序设计》实验指导书
![《MATLAB程序设计》实验指导书](https://img.taocdn.com/s3/m/71b111d26137ee06eff918d7.png)
三、
实验仪器和设备
1、 计算机一台。 2、 MATLAB7.0 以上集成环境。
四、
预习要求
2
《MATLAB 程序设计》实验指导书
1、 复习 MATLAB 的启动与Байду номын сангаас出,熟悉 MATLAB 运行环境。 2、 复习 MATLAB 中矩阵的生成以及矩阵运算的基本原理。
五、
实验内容及步骤
实验内容:
1、 求下列表达式的值 1) z1
5
《MATLAB 程序设计》实验指导书
2) 函数调用 函数文件编制好后,就可调用函数进行计算了。函数调用的一般格式为 [输出实参表]=函数名(输入实参表) 注意:函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个 数一致,否则会出错。函数调用时,实参先传递给形参,然后再执行函数功能。 5、 选择结构 1) if 语句 a) 单分支 if 语句 if 条件 语句块 end b) 双分支 if 语句 if 条件 语句块 1 else 语句块 2 end c) 多分支 if 语句 if 条件 1 语句块 1 elseif 条件 2 语句块 2 …… elseif 条件 n 语句块 n else 语句块 n+1 end 2) switch 语句 switch 表达式 case 结果表 1 语句块 1 case 结果表 2 语句块 2 ……
二、
实验原理
1、 M 文件 用 MATLAB 语言编写的程序,称为 M 文件,它们的扩展名均为.m。M 文件根据 调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file) 。 2、 建立新的 M 文件 启动 MATLAB 文本编辑器有 3 种方法: 1) 单击工具栏上的“New M-File”命令按钮。 2) 从 MATLAB 主窗口的“File”菜单中选择“New”菜单项,再选择“M-file”命令。 3) 在 MATLAB 命令窗口输入命令“edit”。 3、 打开已有的 M 文件 1) 在当前目录窗口选中要打开的 M 文件,双击鼠标左键。 2) 单击 MATLAB 主窗口工具栏上的“Open File”命令按钮,再从弹出的对话框中 选择所需打开的 M 文件。 3) 从 MATLAB 主窗口的“File”菜单中选择“Open”命令,在“Open”对话框中选中 所需打开的文件。 4) 在 MATLAB 命令窗口输入命令“edit 文件名” 。 4、 函数文件 1) 函数文件的基本结构 函数文件由 function 语句引导,其基本结构为: function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 注意:函数名的命名规则与变量名相同。当输出形参多于一个时,应用方括号 括起来。
实验3 MATLAB程序设计
![实验3 MATLAB程序设计](https://img.taocdn.com/s3/m/58e73cebd0f34693daef5ef7ba0d4a7302766c1b.png)
实验3 MATLAB程序设计实验3 MATLAB程序设计实验目的1. 学习使用MATLAB进行程序的设计与实现;2. 掌握MATLAB函数的编写与调用方法;3. 掌握MATLAB的编程基础知识。
实验内容编写一个MATLAB程序,实现以下功能:1. 输入一个正整数n;2. 判断该正整数是否为素数;3. 如果是素数,输出该数;4. 如果不是素数,输出该数的所有质因数;输出该数的最大质因数;输出该数的因数个数。
实验步骤3. 编写一个函数`isPrime`,用于判断一个数字是否为素数。
函数定义如下:matlabfunction result = isPrime(n)result = 1; % 假设n是素数if n <= 1result = 0; % 排除小于等于1的数字return;endfor i = 2:sqrt(n)if mod(n, i) == 0result = 0; % n可以被i整除,所以n不是素数break;endendend4. 在主函数中,调用`isPrime`函数判断输入的数字是否为素数,并输出结果;5. 如果输入的数字不是素数,编写一个函数`primeFactors`,用于计算数字的所有质因数,并输出结果。
函数定义如下:matlabfunction primeFactors(n)factors = ; % 存储质因数的数组for i = 2:nwhile mod(n, i) == 0factors = [factors i]; % i是n的质因数n = n / i;endendfprintf('该数的质因数为:');disp(factors);end6. 继续在主函数中,如果输入的数字不是素数,调用`primeFactors`函数计算所有质因数并输出;7. 在主函数中,编写一个函数`maxPrimeFactors`,用于计算数字的最大质因数,并输出结果。
函数定义如下:matlabfunction maxFactor = maxPrimeFactors(n)factors = ; % 存储质因数的数组for i = 2:nwhile mod(n, i) == 0factors = [factors i]; % i是n的质因数n = n / i;endendmaxFactor = max(factors); % 计算最大质因数end8. 继续在主函数中,调用`maxPrimeFactors`函数计算数字的最大质因数并输出;9. 在主函数中,编写一个函数`factorCount`,用于计算数字的因数个数,并输出结果。
matlab 实验三 matlab程序设计与优化
![matlab 实验三 matlab程序设计与优化](https://img.taocdn.com/s3/m/17045e4500f69e3143323968011ca300a6c3f669.png)
matlab 实验三 matlab程序设计与优化Matlab是一种高级的计算机编程语言,广泛应用于科学、工程、金融和其他领域。
在Matlab实验三中,我们将学习Matlab程序设计与优化。
本文将介绍Matlab实验三的内容和要求,并提供一些有用的技巧和建议,帮助读者更好地完成实验。
实验三的主要内容包括:1. Matlab程序设计基础2. Matlab程序优化技巧3. Matlab代码调试方法4. Matlab性能分析工具5. 实例分析与练习题下面我们将逐个介绍这些内容。
1. Matlab程序设计基础在本节中,我们将学习如何使用Matlab编写简单的程序。
以下是一些重要的概念和技巧:1)变量和数据类型:在Matlab中,变量可以存储不同类型的数据,如数字、字符串、逻辑值等。
常见的数据类型包括double、char、logical等。
2)运算符:Matlab支持各种数学运算符,包括加减乘除、幂运算等。
此外,还有逻辑运算符(如and、or)和比较运算符(如==、~=)。
3)控制结构:控制结构可以控制程序执行流程。
常见的控制结构包括if语句、for循环和while循环。
4)函数:函数是一种可重复使用的代码块,可以接受输入参数并返回输出结果。
Matlab中有很多内置函数,也可以编写自己的函数。
2. Matlab程序优化技巧在本节中,我们将学习如何优化Matlab程序以提高其性能。
以下是一些重要的技巧:1)向量化:向量化是一种将循环操作转换为矩阵操作的技术。
这样可以减少程序执行时间,并且使代码更简洁。
2)预分配数组:在编写Matlab程序时,应尽可能避免动态数组分配。
相反,应该预先分配所需大小的数组。
3)使用内置函数:Matlab中有许多内置函数,它们通常比用户自定义函数更快。
因此,在编写程序时应尽可能使用内置函数。
4)避免不必要的计算:在编写程序时,应尽可能避免不必要的计算。
例如,在循环中进行重复计算或计算已知结果等。
Matlab实验三答案
![Matlab实验三答案](https://img.taocdn.com/s3/m/6413beee09a1284ac850ad02de80d4d8d15a01bc.png)
Matlab实验三答案实验三 MATLAB语言的程序设计一、实验目的:1、熟悉MATLAB程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计方法3、函数文件的编写和设计4、了解和熟悉跨空间变量传递和赋值二、实验基本知识:1、程序流程控制语句for循环结构语法:for i=初值:增量:终值语句1……语句nend说明:1.i=初值:终值,则增量为1。
2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。
while 循环结构语法:while 逻辑表达式循环体语句end说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。
若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。
若表达式的值为假,则程序执行end之后的语句。
2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。
(执行循环体的次数不确定;每一次执行循环体后,一定会改变while 后面所跟关系式的值。
)3、while循环也可以嵌套、其结构如下:while逻辑表达式1循环体语句1while逻辑表达式2循环体语句2end循环体语句3endif-else-end分支结构if 表达式1语句1else if 表达式2(可选)语句2else(可选)语句3endend说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。
2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。
3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。
switch-case结构语法:switch表达式case常量表达式1语句组1case常量表达式2语句组2……otherwise语句组nend说明:1.switch后面的表达式可以是任何类型,如数字、字符串等。
2.当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。
实验3 MATLAB程序设计
![实验3 MATLAB程序设计](https://img.taocdn.com/s3/m/9fbbb85da200a6c30c22590102020740bf1ecd44.png)
实验3 MATLAB程序设计实验3 MATLAB程序设计一、实验目的通过编写MATLAB程序,掌握基本的程序设计能力,提高对于MATLAB语言的熟悉度。
二、实验内容本次实验包含以下三个部分:1. 编写一个程序,计算前n项的斐波那契数列。
2. 编写一个程序,求解一个二次方程的根。
3. 编写一个程序,实现两个矩阵的相乘。
三、实验步骤1. 斐波那契数列编写一个程序,计算前n项的斐波那契数列。
斐波那契数列的前两个数为0和1,之后的每一项都是前两项的和。
matlabfunction fibonacci(n)fib = zeros(1, n);fib(1) = 0;fib(2) = 1;for i = 3:nfib(i) = fib(i-1) + fib(i-2);enddisp(fib);end2. 二次方程的根编写一个程序,求解一个二次方程的根。
用户输入三个系数a、b 和c,程序返回求解得到的根。
matlabfunction [x1, x2] = quadraticEquation(a, b, c)delta = b^2 4ac;if delta < 0fprintf('该方程无实数根\');elseif delta == 0x1 = -b / (2a);x2 = x1;fprintf('该方程有一个重根:x = %.2f\', x1);elsex1 = (-b + sqrt(delta)) / (2a);x2 = (-b sqrt(delta)) / (2a);fprintf('该方程有两个根:x1 = %.2f, x2 = %.2f\ ', x1, x2);endend3. 矩阵相乘编写一个程序,实现两个矩阵的相乘。
用户输入两个矩阵,程序返回相乘得到的矩阵。
matlabfunction result = matrixMultiply(matrix1, matrix2)[m1, n1] = size(matrix1);[m2, n2] = size(matrix2);if n1 ~= m2fprintf('矩阵无法相乘!\');result = ;elseresult = zeros(m1, n2);for i = 1:m1for j = 1:n2for k = 1:n1result(i, j) = result(i, j) + matrix1(i, k) matrix2(k, j);endendendendend四、实验结果1. 斐波那契数列:输入n=10,输出[0 1 1 2 3 5 8 13 21 34]。
实验3MATLAB程序设计
![实验3MATLAB程序设计](https://img.taocdn.com/s3/m/7ddaa15dfe00bed5b9f3f90f76c66137ee064f19.png)
实验3MATLAB程序设计实验目的:学习使用MATLAB进行程序设计,掌握MATLAB中的函数、循环和条件语句的使用。
实验内容:设计一个MATLAB程序,实现以下功能:1.根据给定的身高和体重计算BMI指数;2.根据BMI指数判断体重状况,分为偏瘦、正常、超重和肥胖四种情况;3.将计算得到的BMI指数和体重状况进行输出。
实验步骤:1.首先,创建一个新的MATLAB脚本文件,命名为"BMI.m";2. 定义两个变量,height表示身高(单位:米),weight表示体重(单位:千克);3.根据给定的身高和体重计算BMI指数,使用公式:BMI = weight / (height^2);4. 利用MATLAB中的条件语句,判断BMI指数对应的体重状况,将结果存储在一个字符串变量status中,例如:当BMI < 18.5时,status = '偏瘦';当18.5 <= BMI < 24时,status = '正常';当24 <= BMI < 28时,status = '超重';当BMI >= 28时,status = '肥胖';5. 输出计算得到的BMI指数和体重状况,使用MATLAB中的disp函数,例如:disp(['BMI指数为:', num2str(BMI)]);disp(['体重状况为:', status]);6.保存并运行脚本文件,输入身高和体重,观察输出结果。
实验注意事项:1.身高应为正数,体重应为非负数;2.在计算BMI指数时,注意身高的单位应与体重的单位相匹配;3.判断体重状况时,注意条件语句的范围划分,避免重叠和遗漏;4.观察输出结果,检查是否符合预期。
实验总结:本次实验通过设计一个MATLAB程序,实现了根据身高和体重计算BMI指数并判断体重状况的功能。
实验三MATLAB的程序设计
![实验三MATLAB的程序设计](https://img.taocdn.com/s3/m/5410e44050e2524de5187ead.png)
end
ifk==0
Y=1;
elseifk==1&&n==1
Y=1;
elseifk<=n
Y=(n/k)*c(k-1,n-1);
end
程序测试:
>> c(0,0)
ans =
1
>> c(0,1)
ans =
1
>> c(3,4)
ans =
4
7,计算以下和式,并估计其求和公式以及验证:
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k;
end
测试:
>> s(3)
ans =
6
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^2;
end
测试:
>> s(3)
ans =
14
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^3;
end
测试:
>> s(2)
4
>> Joseph0(7,4)
2
11,求出 之间的所有素数;
M函数文件:
functionout = nprimes(N)
A= [1:N];
A(1)=0;
i=2;
whilei<= floor(sqrt(N));
forj= 2:fix(N/i)
A(i*j) = 0;
end;
i = A(find(A>i,1));
MATLAB实验三-选择结构程序设计
![MATLAB实验三-选择结构程序设计](https://img.taocdn.com/s3/m/42aeb5c8bceb19e8b8f6bac2.png)
MATLAB实验报告学院:光电学院班级:073-1姓名:刘颖学号:2实验三 选择结构程序设计1. 求分段函数的值。
y=⎪⎩⎪⎨⎧--≠≠<≤+--≠<-+其他及且且,13250,653x 0,6222x x x x x x x x x x用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的值。
程序设计:x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0]if x<0&x~=-3y=x.*x+x-6;elseif x>=0&x<5&x~=2&x~=3y=x.*x-5*x+6;else y=x.*x-x-1endy运行结果:x =-5.0000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y =29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.0000 y =29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.00002.输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。
其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分一下为E 。
要求:(1)分别用if 语句和switch 语句实现。
用switch 语句实现程序设计:score=input('请输入百分制成绩:');switch fix(score/10)case {9,10}grade='A';case {8}grade='B';case {7}grade='C';case {6}grade='D';otherwisegrade='E';endgrade请输入百分制成绩:95grade =A请输入百分制成绩:86grade =B请输入百分制成绩:50grade =E用if语句实现程序设计:score=input('请输入百分制成绩:');k=fix(score/10);if k=9&k=10grade='A';elseif k=8grade='B';elseif k=7grade='C';elseif k=6grade='D';else grade='E';endgrade运行结果:请输入百分制成绩:74grade =C请输入百分制成绩:65grade =D请输入百分制成绩:21grade =E(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1,编写M 函数实现求一个数是否为素数,再编写一主程序(脚本文件),要求
通过键盘输入一个整数,然后调用判断素数函数,从而确定它是否素数。
x=input('请输入一个整数 x:');
if myprime(x)
disp('您输入的整数x是一个素数。
')
else
disp('您输入的数x不是一个素数。
')
end
function y=myprime(x)
y=1;
for i=2:fix(sqrt(x))
if mod(x,i)==0
y=0;
end
end
2,编写M 函数统计一数值中零的个数,然后编写脚本文件,实现统计从1—2007
中零的总个数。
function num=number0(a) %统计十进制数值中0的个数
sa=num2str(a);%将数值装化为字符串
num=length(find(sa=='0'));% ));%求取字符串中'0’的个数
y=0;
for a=1:2006
num=number0(a);
y=num+y;
end
disp(y)
504
3,编写程序计算x∈[-3,3],字长0.01:并画出曲线
x = -3:0.01:3;
y=zeros(size(x));
for i = 1:length(x)
if -3<= x(i)& x(i)<=-1
3)/2;
elseif -1<= x(i) &
x(i)<=1
y(i)=-x(i).^2+1;
elseif 1<=x(:,i)<=3
y(i)=(-x(i).^2+4*x(i)-
3)/2;
end
end
plot(x,y)
4 ch= menu('please choose a number','1','2','3','4')
switch ch
case 1
a=10-20*rand(1);
case 2
a=5-10*rand(1);
case 3
a=1-2*rand(1);
case 4
a=randn(1);
end
disp(a)
5编写良好的用户界面程序,完成输入全班学生某学期6门课程(任意指定)的成绩,并按学分数分别为2、3、2、4、2、5,进行加权平均,计算出每个学生的加权平均。
a=input('请依次输入语言,数学,英语,物理,化学,生物成绩;如:[68 72 65 68 35 79]:');
w=[2 3 2 4 2.5 1];
sum=0;w1=0;
for e=1:6
w1=w1+w(e);
end
for j=1:6
sum=sum+a(j).*w(j);
end
y=sum./w1;
disp(y)
6、企业发放的奖金按个人完成的利润提成。
分段提成比例K1为:当I≤10万元时K1=10%;当10<I≤20万元时,K1=5%;当20<I≤40万元时,K1=2%;当I>40万元时,I=1%。
function y=lirun(x)
if x<=10
y=x*0.1;
elseif x>10&&x<=20
y=(x-10)*0.05+10*0.1;
elseif x>20&&x<=40
y=(x-20)*0.02+10*0.05+10*0.1;
elseif x>40
y=(x-40)*0.01+10*0.02+10*0.05+10*0.1;
End
X=25;
Y=lirun(x)
9、有一分数序列2/1,3/2,5/3,8/5,13/8,21/13……求前15项的和。
d=0 ;
a(1)=2;
b(1)=1;
a(2)=3;
b(2)=2;
c(1)=a(1)./b(1);
c(2)=a(2)./b(2);
for i=3:15
a(i)=a(i-2)+a(i-1);
b(i)=b(i-2)+b(i-1);
c(i)=a(i)./b(i);
end
for j=1:15
d=d+c(j);
end
disp(d)
24.5701
10、有n个人围成一圈,按列号编号。
从第一个人开始报数,数到m时该人退出,并且下一个人从1开始报数,求出出圈人的顺序。
function y=shaixuan(a,b)
n=a;
x=[1:n];
i=0;m=0;j=1;
while(n>0)
i=i+1;m=m+1;
if(m==b)
k(j)=x(i);j=j+1;n=n-1;
for(v=i:n)
x(v)=x(v+1);
end
m=0;i=i-1;
end
if(i==n)
i=0;
end
end
y=k;
y=shaixuan(20,7)
y =
7 14 1 9 17 5 15 4 16 8 20 13 11 10 12 19 6 18 20 3。