实验三MATLAB程序设计

合集下载

实验三_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 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。

实验3 MATLAB程序设计

实验3 MATLAB程序设计

实验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)

程序设计实验报告(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(实验三)

实验三1.利用 rand 函数编写一个新的函数 rand2,该函数能够产-之间的随机数,其中 n 为任意正数。

该函数以 rand 生[],n n函数为子函数。

解:function x=rand2(a,b,n)x=round(rand(a,b)*2*n-n);2.依据第五章创建的结构体,使用该结构体对一个班级的学生成绩进行管理,如计算总分、平均分、排列名次等。

解:student=struct('name',{'Hunter','Allen','Henry'},'number',{'1801','1803','1827'},'score',{[65 89 59],[48 63 75],[74 55 88]})student(1)Hunter_sum=sum(student(1).score)Hunter_mean=mean(student(1).score)student(2)Allen_sum=sum(student(2).score)Allen_mean=mean(student(2).score)student(3)Henry_sum=sum(student(3).score)Henry_mean=mean(student(3).score)score_sum=[ Hunter_sum,Allen_sum,Henry_sum];sort(score_sum,'descend')3.编写程序判断输入的年份是否为闰年并计算这一天是一年当中的第几天(包括当天)。

其中要求把判断闰年和计算天数的程序分别编写为两个函数文件leapyear.m和countday.m,并在主程序中输入要计算的年、月、日,实现对这两个函数的调用,输出信息说明该年是否是闰年和该天是一年的第几天。

实验3 Matlab程序设计1实验报告

实验3 Matlab程序设计1实验报告

实验3 Matlab程序设计1实验报告I am going to write the report for the Matlab program design experiment 3. In this experiment, I was required to use Matlab to design a program to solve a specific problem.I had to write the program, test it, and then write areport on the results.First, I started by analyzing the problem and breaking it down into smaller, more manageable parts. This is a crucial step in programming, as it allows me to understand the problem fully and come up with an effective solution. Once I had a clear understanding of the problem, I began writing the program in Matlab.I encountered some challenges along the way, such as debugging errors and optimizing the code for efficiency. However, with some perseverance and problem-solving skills, I was able to overcome these challenges and successfully write the program.After writing the program, I tested it with different inputs to ensure that it produced the correct outputs inall cases. Testing is an essential part of programming, asit helps to identify and fix any errors or bugs in the code.Once the program was tested and working correctly, I wrote a report on the results. In the report, I explainedthe problem, my approach to solving it, and the results of the program. I also included any insights or observations that I gained from working on the program.Overall, this experiment was a valuable learning experience for me. It allowed me to practice my programming skills and problem-solving abilities, and it also gave me a better understanding of how to use Matlab for real-world applications.中文回答:我要写实验3的Matlab程序设计实验报告。

实验3 MATLAB程序设计

实验3 MATLAB程序设计

实验3 MATLAB程序设计电子信息工程系实验报告课程名称: MATLAB语言成绩:实验工程名称:实验3 MATLAB程序设计实验时间:2022-4-6 指导教师〔签名〕: 1. 实验目的学习函数的编制,掌握MATLAB的编程应用。

通过不同的程序结构和不同的实际编程问题,掌握MATLAB 的编程方法。

2.实验环境硬件:PC机,根本配置CPU PII以上,内存4G以上;软件:Matlab 版本7.1 3.实验原理MATLAB是一个专门的数学软件,特别是对矩阵进行操作,可以方便快捷的进行矩阵运算,从而简化了人们的脑力,同时能更加准确地计算结果。

4.实验内容及结果分析4.4编写一个程序,计算出坐标系中用户指定两点(X1,Y1)和(X2,Y2)之间的距离。

要求有输入、输出及其相关提示。

编写程序如下: clc; clear;X1=input('please input X1=');Y1=input('Y1='); X2=input('X2=');Y2=input('Y2=');s=sqrt((X1-X2) +(Y1-Y2) );fprintf('两点距离'); disp(s)4.5双曲余弦的定义如下:,编写一个程序,计算出用户指定的x 的值对应的双曲余弦值。

用这个程序计算双曲余弦值的假设干值,并和MATLAB 中的内建函数cosh(x)得到的值比拟看看是否完全相同。

并用MATLAB 打印出这个函数的图象。

编写程序如下:clc; clear;x=input('please input x='); coshx=(exp(x)+exp(-x))/2; disp(coshx) x=1, cosh=1.5431 x=2,cosh=3.7622 x=3,cosh=10.0677可得与内建函数值相等。

图1 利用plot函数绘图4.6电子工程:负载的最大输出功率一个内阻Rs=50Ω,电动势V=120V 的电源驱动一个负载RL。

MATLAB实验报告3

MATLAB实验报告3

MATLAB实验报告3MATLAB实验报告3一、实验目的1.掌握MATLAB程序的调试方法;2.掌握MATLAB中的矩阵操作;3.熟悉MATLAB中处理图像的基本操作。

二、实验内容1.用MATLAB调试程序;2.用MATLAB进行矩阵运算;3.用MATLAB处理图像。

三、实验原理及步骤1.MATLAB程序的调试方法在MATLAB中调试程序可以采用设置断点、逐行运行、单步调试等方法。

设置断点可以在程序中的其中一行上点击左键,会出现一个红色的圆点表示断点已设置。

逐行运行可以通过点击Editor界面上的运行按钮实现。

单步调试可以通过点击断点所在行的左侧按钮实现。

2.矩阵运算在MATLAB中,对于矩阵的运算可以使用一些基本的函数,如矩阵加法、减法、乘法等。

矩阵加法可以使用"+"操作符实现,减法可以使用"-"操作符实现,乘法可以使用"*"操作符实现。

另外,MATLAB还提供了一些更复杂的矩阵运算函数,如矩阵的转置、逆等。

3.图像处理在MATLAB中,可以使用imread函数加载图像文件,使用imshow函数显示图像,使用imwrite函数保存图像。

另外,还可以使用一些图像处理函数对图像进行处理,如灰度化、二值化、平滑滤波等。

四、实验步骤1.调试程序首先,在MATLAB的Editor界面中打开要调试的程序文件。

然后,在程序的其中一行上点击左键,即设置了一个断点。

最后,点击运行按钮,程序会在断点处停下,然后可以通过单步调试和逐行运行来逐步查看程序的执行过程和变量的取值。

2.矩阵运算首先,定义两个矩阵A和B,并赋值。

然后,使用"+"操作符对两个矩阵进行相加,得到矩阵C。

最后,使用disp函数显示矩阵C的值。

3.图像处理首先,使用imread函数加载一张图像。

然后,使用imshow函数显示加载的图像。

接着,使用rgb2gray函数将彩色图像转换为灰度图像。

matlab程序设计与应用实验指导书

matlab程序设计与应用实验指导书
a)绘制三维圆柱螺旋线, ,要求给出相应的坐标轴和标题附加标注,螺旋线为蓝色虚线。
在matlab中,有一种特殊的运算,因为其运算苻是在有关算术运算苻前面加点,因此叫点运算。点运算苻有.*,./,.\和.^。两个矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。
三、实验仪器和设备
1.计算机1台
四、预习要求
1.复习特殊矩阵的产生。
2.复习矩阵的加减乘除与乘方运算,以及相应的点运算。
(1)求它们的乘积C;
(2)将矩阵C的右下角3*2子矩阵赋给D;
(3)察看matlab工作空间的使用情况。
六、实验报告要求
实验报告应包括实验目的、实验内容、流程图、程序清单、运行结果以及实验的收获与体会。
实验二、
一、实验目的
1,掌握生成特殊矩阵的方法;
2,掌握矩阵分析的方法;
3,用矩阵求逆法求解线性方程组。
5,完成以下各题,将答案写入实验报告,并在机器上运行结果验证
(1)编写一个函数文件求两个数的最大值。
(2)编写一个函数文件求三个数的最大值。
(3)编写一个函数文件,求矩阵的最大元
(4)编写一个函数文件,以向量为参数,对向量元素进行排序并输出
六、实验报告要求
1.完成实验内容中的计算;
2.验证实验内容中计算所得结果的正确性。
(3)try语句
3)循环结构
(1)for语句
(2)while语句
(3)break语句与continue语句
(4)循环的嵌套
3,函数文件
function 输出形参表=函数名(输入形参表)
注释说明部分
函数体语句
三、实验仪器和设备
1.计算机1台
四、预习要求

实验三MATLAB程序设计

实验三MATLAB程序设计

实验三M A T L A B程序设计(总16页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--2014秋2012级《MATLAB程序设计》实验报告班级:软件C121姓名:冯杨腾学号:125692实验三 MATLAB程序设计一、实验目的1、掌握建立和执行M文件的方法。

2、掌握选择结构、多分支选择结构程序的编程方法。

3、掌握多种循环结构程序的编程方法。

4、掌握定义函数文件和调用函数文件的方法。

二、实验内容1、MATLAB M文件的创建与使用。

(1)建立自己工作目录,如D:\MATLAB。

在File菜单中,单击Set Path菜单项,在弹出对话框中建立目标文件夹,:单击Add Folder按钮,将自己的工作目录D:\MATLAB添加到搜索目录之中,按Save按钮保存,如图1。

图1 工作目录设置(2)在M文件编辑器中编制命令行文件。

在File菜单中,单击New—>M-File,弹出M文件编辑器,如图2:图2 编辑器在编辑器中输入如下命令程序:%求小于2000且为2的整数次幂的正整数。

f(1)=2;k=1;while f(k)<1000f(k+1)=f(k)*2;k=k+1;endf,k调试后,将其以形式保存在D:\MATLAB中。

(3)命令行程序运行。

进入命令窗口,键入test1,观察运行结果:f =Columns 1 through 92 4 8 16 32 64 128 256512Column 101024k =10(4) 按上述步骤,在在编辑器中输入如下函数文件: function f=tt(n)%求小于任何正整数且为2的整数次幂的正整数。

%c=n(n)%n 可取任意正整数。

%2004年8月。

f(1)=2; k=1;while f(k)<ceil(n/2) %ceil 函数取最近的正整数 f(k+1)=f(k)*2; k=k+1; end f调试后,将其以形式保存在D:\MATLAB 中。

实验3 Matlab程序设计1实验报告

实验3 Matlab程序设计1实验报告

实验3 Matlab程序设计1实验报告
实验3 Matlab程序设计1自查报告。

在本次实验中,我学习了如何使用Matlab进行程序设计,并完
成了相应的实验任务。

在实验过程中,我遇到了一些困难,但通过
查阅资料和与同学讨论,最终顺利完成了实验。

首先,我学习了Matlab的基本语法和常用函数,包括变量的定义、数组的操作、条件语句和循环结构等。

在实验中,我成功地运
用了这些知识,编写了一些简单的程序来实现特定的功能。

其次,我学习了Matlab的绘图功能,包括如何绘制二维和三维
图形,以及如何对图形进行美化和标注。

通过实验,我掌握了
Matlab中绘图函数的使用方法,并成功地绘制了一些图形来展示实
验结果。

在实验过程中,我也遇到了一些问题。

例如,在编写程序时,
我经常会忘记Matlab的语法规则,导致程序出现错误。

此外,我在
绘图时也遇到了一些困难,比如不知道如何设置图形的颜色和线型。

但通过查阅Matlab的官方文档和向同学请教,我逐渐解决了这些问
题。

总的来说,本次实验让我对Matlab的程序设计和绘图功能有了更深入的了解,也提高了我的编程能力和解决问题的能力。

通过不断地练习和实践,我相信我会在Matlab编程方面取得更大的进步。

MATLAB实验三(1)程序设计

MATLAB实验三(1)程序设计

实验三(1)、MA TLAB程序设计一、实验目的1、掌握建立和执行M文件的方法2、掌握利用if语句和switch语句实现选择结构的方法二、实验内容及步骤1、输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。

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

要求:1)分别用if语句和switch语句实现2)对不合理的成绩应输出出错信息“输入的成绩不合理”(若成绩出现小数,则只能是“.5”)switch语句clear all;mark=input('请输入分数');switch markcase num2cell(90:0.5:100)result='A';case num2cell(80:0.5:89.5)result='B';case num2cell(70:0.5:79.5)result='C';case num2cell(60:0.5:69.5)result='D';case num2cell(0:0.5:59.5)result='E';otherwiseresult='输入成绩不合理';endresultif语句clear all;a=input('请输入分数');if rem(a,0.5)result='输入有误!';elseif a<=100&&a>=90result='A';elseif a<90&&a>=80result='B';elseif a<80&&a>=70result='C';elseif a<70&&a>=60result='D';elseif a<60&&a>=0result='E';elseresult='输入有误!';endresult2、设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,显示相应的结果,并要求结果显示类似于“a=x+y=34”。

matlab 实验三 matlab程序设计与优化

matlab 实验三 matlab程序设计与优化

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程序设计实验报告

matlab程序设计实验报告Matlab程序设计实验报告引言:Matlab(Matrix Laboratory)是一种强大的高级编程语言和环境,广泛应用于科学计算、数据分析和工程设计等领域。

本实验报告旨在介绍我在Matlab程序设计实验中的学习和实践经验。

一、Matlab基础知识1.1 Matlab的安装与配置在实验开始前,我们首先需要安装Matlab并进行相应的配置。

Matlab的安装过程相对简单,只需按照官方指引进行操作即可。

配置方面,我们可以设置工作目录、界面风格、字体大小等,以提高工作效率。

1.2 Matlab的基本语法Matlab的语法类似于其他编程语言,但也有一些特殊之处。

例如,Matlab中的变量名不区分大小写,函数名则区分大小写。

此外,Matlab还具有丰富的数学函数库,可以方便地进行各种数值计算。

二、Matlab程序设计实践2.1 数值计算Matlab以其强大的数值计算能力而闻名,我们可以使用Matlab进行各种数学运算和数值计算。

例如,我们可以使用Matlab求解线性方程组、计算矩阵的特征值和特征向量等。

2.2 图像处理Matlab提供了丰富的图像处理函数,可以对图像进行各种操作和处理。

例如,我们可以使用Matlab读取图像文件、调整图像的亮度和对比度、进行图像滤波等。

此外,Matlab还支持图像的显示和保存,方便我们进行结果的展示和分析。

2.3 数据可视化Matlab提供了强大的数据可视化功能,可以将数据以图表的形式直观地展示出来。

我们可以使用Matlab绘制各种类型的图表,如折线图、散点图、柱状图等。

此外,Matlab还支持对图表的样式、标签、标题等进行自定义,以满足不同的需求。

三、实验心得与体会通过这次Matlab程序设计实验,我深刻体会到了Matlab在科学计算和工程设计中的重要性。

Matlab不仅提供了丰富的数学函数库和工具箱,还具备直观的图形界面和友好的交互环境,使得我们能够快速、高效地进行各种计算和分析。

Matlab实验三答案

Matlab实验三答案

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程序设计

实验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程序设计

实验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的程序设计
error('k>n,put in again!!');
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实验三-选择结构程序设计

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2014秋2012级《MATLAB程序设计》实验报告班级:软件C121姓名:冯杨腾学号:125692实验三 MATLAB程序设计一、实验目的1、掌握建立和执行M文件的方法。

2、掌握选择结构、多分支选择结构程序的编程方法。

3、掌握多种循环结构程序的编程方法。

4、掌握定义函数文件和调用函数文件的方法。

二、实验内容1、MATLAB M文件的创建与使用。

(1)建立自己工作目录,如D:\MATLAB。

在File菜单中,单击Set Path菜单项,在弹出对话框中建立目标文件夹,:单击Add Folder按钮,将自己的工作目录D:\MATLAB添加到搜索目录之中,按Save按钮保存,如图1。

图1 工作目录设置(2)在M文件编辑器中编制命令行文件。

在File菜单中,单击New—>M-File,弹出M文件编辑器,如图2:图2 编辑器在编辑器中输入如下命令程序:%求小于2000且为2的整数次幂的正整数。

f(1)=2;k=1;while f(k)<1000f(k+1)=f(k)*2;k=k+1;endf,k调试后,将其以test1.m形式保存在D:\MATLAB中。

(3)命令行程序运行。

进入命令窗口,键入test1,观察运行结果:f =Columns 1 through 92 4 8 16 32 64 128 256512Column 101024k =10(4)按上述步骤,在在编辑器中输入如下函数文件:function f=tt(n)%求小于任何正整数且为2的整数次幂的正整数。

%c=n(n)%n 可取任意正整数。

%2004年8月。

f(1)=2; k=1;while f(k)<ceil(n/2) %ceil 函数取最近的正整数 f(k+1)=f(k)*2; k=k+1; end f调试后,将其以test2.m 形式保存在D:\MATLAB 中。

(5)进入命令窗口,键入test2(9),观察程序运行结果。

>> test2(9) f =2 4 8 ans =2 4 82、编写一个函数M 文件,计算下面函数的值,给出标量x 的值,调用该函数后,返回y 的值。

sin ,(),036,3x x y x x x x x ≤⎧⎪=<≤⎨⎪-+>⎩选择一些数据测试编写的函数。

源程序 :function [y]=myfun(x)if x<=0y=sin(x);elseif x>3y=-x+6;elsey=x;end运行结果:>> test(0)ans =>> test(2)ans =2>> test(5)ans =13、编写一个函数M文件,返回向量x中元素的和、平均值、最大值、最小值、均方根值。

其中方均根值(Root Mean Square)的计算公式为:rms=并用下面数据测试你写的函数:(1)x=sin(0:0.01:6*pi)(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。

源程序:function [sum_x,m_x,max_x,min_x,rsm_x] = myfun7(x)sum_x=0;a=x;for k=a;sum_x=sum_x+k;n=length(x);for i=1:nm_x=sum_x/n;endendmin_x=x(1);for t=1:nif min_x>x(t)min_x=x(t);endendmax_x=x(1);for t=1:nif max_x<x(t)max_x=x(t);endendsum_x1=0;for t=1:nsum_x1=sum_x1+x(t).^2; rms_x=sqrt(sum_x1/n); endsum_xm_xmax_xmin_xrms_x运行结果:(1)>> x=sin(0:0.01:6*pi); >> myfun7(x)sum_x =-2.1218e-004m_x =-1.1256e-007max_x =1.0000min_x =-1.0000rms_x =0.70712)>> x=rand(1,200);>> myfun7(x)sum_x = 99.5448 m_x =0.4977 max_x = 0.9961 min_x = 0.0046 rms_x = 0.57784、编写一个函数M 文件,若给出一个向量12[,,]n x x x x =,函数返回如下范德蒙矩阵。

122221211112111n nn n n n x x x x x x x x x ---⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦例如在命令窗口输入>>v =myvander([2 3 4 5]),得1111234549162582764125v ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦,同时生成一些数据测函数。

源程序:function[v]=myvander(x) n=length(x); v=ones(n,n); for j=1:n for i=1:nv(i,j)=x(j)^(i-1); end end运行结果:x=([2 3 4 5]); >> test(x) ans =1 1 1 12345 4 9 16 25 8 27 64 125 >> x=([1 2 3 ]); >> test(x) ans =1 1 1 123 14 95、分别使用while 和for 编写命令文件,用循环语句编程计算s 值:10322()n s n n ==-∑同时对编写的文件设置断点,观察变量取值的变化情况。

(1)For 循环:function[]=test() s=0;for n=2:1:10s=s+(n^3-n^2); enddisp(s) end运行结果:>> test() 2640(2)While 循环:function[]=test() s=0; n=2;while n<=10s=s+(n^3-n^2); n=n+1; enddisp(s) end运行结果:>> test()26406、数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。

重复此过程,最终得到的结果为1。

如:2→13→10→5→16→8→4→2→16→3→10→5→16→8→4→2→1建立命令M文件,完成上述功能,要求显示数字处理过程。

源程序:function X = test()n=input('请输入一个正整数');X(1)=n;i=2;while n~=1if rem(n,2)==0n=n/2;elseif rem(n,2)==1n=n*3+1;endX(i)=n;i=i+1;endend运行结果:请输入一个正整数2ans =2 1请输入一个正整数3ans =3 10 5 16 84 2 1请输入一个正整数12ans =12 6 3 10 5 16 8 4 2 17、设计一个学生身高的管理系统,输出身高的基本分为5等:很高、较高、中等、较矮、矮,其中190cm以上为“很高”,[180cm,190cm)区间为“较高”,[170cm,180cm)为“中等”,[1160cm,170cm)为“较矮”,160cm以下为“矮”,要求分别用if 语句和switch语句实现(1)for语句:n=100;for i =1:na=input('请输入身高');if a >1.90disp('很高')elseif a>=1.80&&a<1.90disp('较高')elseif a>=1.70&&a<1.80disp('中等')elseif a>=1.60&&a<1.70disp('较矮')elseif a<1.60disp('矮')endend运行结果:请输入身高1.95很高请输入身高1.85较高请输入身高1.75中等请输入身高1.65较矮请输入身高1.55矮switch语句:x=input('身高为:');n=(x-100)/10;switch floor(n)case{10,9}disp('很高');case{8}disp('较高');case{7}disp('中等');case{6}disp('较矮');case{5,4,3,2,1,0}disp('矮')end运行结果:身高为:195很高身高为:185较高身高为:175中等身高为:165较矮身高为:155矮8、Fibonacci数组的元素满足Fibonacci规则:a k+2=a k+a k+1,(k=1,2,3,…);且a1= a2=1。

请设计一段程序,求出该数组中第一个大于10000的元素要求显示的结果为:i=21a(i)=10946或者a(21)=10946源程序:a(1)=1;a(2)=1;i=2;while a(i)<=10000a(i+1)=a(i-1)+a(i);i=i+1;end;i,a(i)运行结果:i =21ans =10946源程序:n=100;a(1)=1;a(2)=1for i=3:na(i)=a(i-1)+a(i-2);if a(i)>=10000a(i),break;end;end;i运行结果:a =Columns 1 through 121 123 5 8 13 21 34 55 89 144Columns 13 through 21233 377 610 987 1597 2584 4181 6765 10946ans =10946i =219、编写一个函数文件and.m,用于求两个输入矩阵的乘积和点乘,然后在命令行窗口中调用该函数,要求:(1)当两矩阵是尺寸相同的方阵时,返回它们的乘积和点乘。

(2)当两矩阵不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘(3)当两矩阵的尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘”源程序:function [] = test(x,y)[m,n]=size(x);[i,j]=size(y);if m==n&&i==j&&m==iz1=x*y;z2=x.*y;disp(z1);disp(z2);elseif n==iz1=x*y;disp(z1);elseif m==i&&n==jz2=x.*y;disp(z2);elseif n~=idisp('这两个矩阵不能相乘');endend运行结果:1)>> x=[1 2 3; 4 5 6;7 8 9];>> y=[1 2 3; 4 5 6;7 8 9];>> test(x,y)30 36 4266 81 96102 126 1501 4 916 25 3649 64 812)>> y=[1 2 3; 4 5 6];>> x=[1 2 3; 4 5 6];>> test(x,y)1 4 916 25 363)>> x=[1 2 2; 2 3 3;3 4 4];>> y=[1 2 3; 4 5 6];>> test(x,y)这两个矩阵不能相乘10、编写一个阶乘函数factorial.m,然后在如下程序中调用该函数,“分别使用for和while语句找出最小的n值,使得n!>10100,并求出n!”(1)For语句:Function[]=factorial()n=1;s=1;for n=1:10000s=s*n;if(s>10100)break;enddisp(n);end运行结果:1234567(2)While语句:function[]=factorial()n=1;s=1;while s<=10100n=n+1;s=s*n;enddisp(n);end运行结果:>> factorial()811、下列程序用来判断一个人的体温是否处于危险状态。

相关文档
最新文档