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的线性代数计算库,进行最小二乘法的计算。
实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。
实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。
实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。
实验方法:基于Matlab的ODE工具箱,进行ODE求解。
实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。
总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。
通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。
这些知识和技能对我未来的学习和工作都将有着重要的帮助。
matlab实验五循环结构程序设计实验报告
实验五:循环结构程序设计实验报告一、实验目的1. 了解循环结构的基本概念和原理;2. 掌握使用Matlab进行循环结构程序设计的方法;3. 提高编程能力和问题解决能力。
二、实验内容1. 学习while循环和for循环的基本语法和用法;2. 设计并编写一些基于循环结构的Matlab程序;3. 分析程序运行结果并进行总结。
三、实验原理循环结构是程序设计中的重要组成部分,它可以让一段代码重复执行多次,从而简化程序的编写。
在Matlab中,循环结构主要有while 循环和for循环两种形式。
while循环在执行循环体前判断条件是否为真,只有条件为真时才会执行循环体;for循环则是指定循环的次数,每次迭代时执行一次循环体。
四、实验步骤与结果1. 编写一个使用while循环的程序,实现1~100的累加。
程序代码如下:```matlabsum = 0;i = 1;while i <= 100sum = sum + i;i = i + 1;enddisp(sum);```运行程序后,得到的结果为5050。
2. 编写一个使用for循环的程序,实现1~10的阶乘。
程序代码如下:```matlabresult = 1;for i = 1:10result = result * i;enddisp(result);```运行程序后,得到的结果为xxx。
五、实验总结通过本次实验,我深刻理解了循环结构的基本概念和原理,掌握了使用Matlab进行循环结构程序设计的方法。
在编写循环程序的过程中,我发现循环结构可以大大简化程序的编写,并且能够高效地处理重复性任务。
我也进一步提高了自己的编程能力和问题解决能力。
本次实验使我对Matlab中的循环结构有了更加深入的了解,我相信这对我的编程能力和日后的学习工作都将大有裨益。
六、实验感想和改进意见通过本次实验,我深刻认识到循环结构在程序设计中的重要性和灵活性。
循环结构能够帮助我们简化程序的编写,提高代码的重用性和可读性,因此在实际的程序设计中,合理地运用循环结构能够大大提高程序的效率和逻辑清晰度。
matlab程序设计实验报告
matlab程序设计实验报告《MATLAB程序设计实验报告》摘要:本实验报告旨在介绍MATLAB程序设计的基本原理和实践操作,通过实验演示和分析,展示了MATLAB在工程领域的应用和重要性。
本报告详细介绍了MATLAB程序设计的基本语法和常用函数,以及如何利用MATLAB进行数据处理、图像处理、信号处理等工程应用。
通过本报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。
1. 引言MATLAB是一种用于算法开发、数据可视化、数据分析和数值计算的高级技术计算语言和交互式环境。
它具有强大的数学计算功能和丰富的绘图工具,广泛应用于工程、科学和金融等领域。
本实验报告将介绍MATLAB程序设计的基本原理和实践操作,帮助读者快速掌握MATLAB的基本技能。
2. 实验目的本实验的主要目的是让读者了解MATLAB程序设计的基本语法和常用函数,掌握MATLAB在工程领域的应用和重要性。
通过实验演示和分析,展示MATLAB 在数据处理、图像处理、信号处理等方面的应用。
3. 实验内容(1)MATLAB程序设计的基本语法和常用函数(2)利用MATLAB进行数据处理的实验演示(3)利用MATLAB进行图像处理的实验演示(4)利用MATLAB进行信号处理的实验演示4. 实验步骤(1)学习MATLAB程序设计的基本语法和常用函数(2)编写MATLAB程序,实现数据处理、图像处理、信号处理等功能(3)进行实验演示和分析,展示MATLAB在工程领域的应用和重要性5. 实验结果与分析通过本实验的学习,读者将能够掌握MATLAB程序设计的基本技能,包括数据处理、图像处理、信号处理等方面的应用。
通过实验演示和分析,读者将了解MATLAB在工程领域的重要性,为工程实践提供有力的支持。
6. 结论MATLAB程序设计是一种强大的工程工具,具有广泛的应用前景。
通过本实验报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。
实验四、Matlab 程序设计
实验四 MATLAB 程序设计实验目的:1. 掌握建立和执行M 文件的方法2. 掌握利用if 语句实现选择结构的方法3. 掌握利用switch 语句实现多分支选择结构的方法4. 掌握利用for 语句实现循环结构的方法5. 掌握利用while 语句实现循环结构的方法6. 熟悉利用向量运算来代替循环操作的方法实验内容:1、输入一个x ,求分段函数的值,用if 语句实现。
32,1x 50,6530,6222≠⎪⎩⎪⎨⎧--≠<≤+--≠<-+=x x x x x x x x x x y 及其它且且2、输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E. 其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E. 要求:分别用if 语句和switch 语句实现。
3、某公司员工的工资计算方法如下:a) 工作时数超过120小时者,超过部分加发15%;b) 工作时数低于60小时者,扣发700元;c) 其余按每小时84元计发。
试编程按输入的员工的工时数,计算应发工资。
4、根据2222213121116n ++++= π,求π的近似值。
当n 分别取100,1000,10000时,结果是多少?要求:分别用循环结构和向量运算(使用sum 函数)来实现。
5、根据12151311-++++=n y ,求: a) y<3时的最大n 值。
b) 与(1)的n 值对应的y 值。
6、考虑以下迭代公式:nn x b a x +=+1 其中a 、b 为正的常数。
(1) 编写程序求迭代的结果,迭代的终止条件为5110-+≤-n n x x ,迭代初值x 0=1.0,迭代次数不超过500次。
(2) 如果迭代过程收敛于r ,那么r 的准确值是242a b b +±-,当(a, b)的值取(1,1)、 (8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。
MATLAB程序设计教程(第二版)第三章实验报告
for i=1:n
a=((2*i*i*2)/((2*i-1)*(2*i+1)))*a;
end
disp(a);
clear
i=1:n;%用prod函数实现
b=prod((2.*i).*(2.*i)./((2.*i-1).*(2.*i+1)))
6.建立 矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
班级
Class
姓名
Name
学号
ID
指导老师
Teacher
课程名称
Course
MATLAB
编制日期
Date
实验名称
Title
MATLAB程序设计
一、实验目的(ExperimentTarget)
1.掌握利用if语句、switch语句实现选择结构的方法。
2.掌握利用for语句、while语句实现循环结构的方法。
>> lx2_1
请输入一个百分制分数100
A
>> lx2_1
请输入一个百分制分数90
A
>> lx2_1
请输入一个百分制分数80
B
>> lx2_1
请输入一个百分制分数70
C
>> lx2_1
请输入一个百分制分数60
D
>> lx2_1
请输入一个百分制分数30
E
>> lx2_1
请输入一个百分制分数123
输入出错
(1)
clear
n=input('输入一个数:');%用循环结构实现
>> lx51
《MATLAB程序设计》实验指导书
三、
实验仪器和设备
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 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 注意:函数名的命名规则与变量名相同。当输出形参多于一个时,应用方括号 括起来。
MATLAB程序设计实验
Please enter next sample1
Please enter next sample1
Please enter next sample1
Please enter next sample1
Please enter next sample1
fprintf('The standard deviation is :%f\n',std_dev);
运行结果:
Please enter the first sample:12
Please enter next sample24
Please enter next sample12
Please enter next sample23
elseif n==-1
fprintf('the sum of the two numbers %f\n and %f\n is %f\n',number1,number2,number1-number2);
end
运行结果:
please enter number1 as :5
please enter number2 as:7
disp('良好');
case{'C','c'}
disp('中等');
case{'D','d'}
disp('及格');
case{'E','e'}
disp('对不起,你需要重修!')
otherwise
disp('对不起,输入错误!)
MATLAB程序设计实验1
测试数据:
b3= linspace(0,10,5)
4)定数对数采样的方法(logspace(a,b,n)):
n为数组的总个数,a为第一个元素,b为数组的最后一个元素。经过常用对数采样生成一维数组。
测试数据:
b4=logspace(-1,1,4)
[px,py] = gradient(z,.2,.2);
contour(v,v,z), hold on, quiver(v,v,px,py), hold off
4)fminbnd、fminsearch、fminunc极值
x1 = 0;
x2 =2*pi;
[x,y] = fminbnd(@func,x1,x2)
a5=tril(a)
a6=triu(a,1)
5.字符串数组的创建和操作实验
1)字符串的创建
a.直接输入的方法创建字符串数组
在直接创建数组的时候,可以直接用单引号将字符串括起来作为一个字符串数组,字符窗中如果有单引号,可以利用转义的方法,在单引号前面在加一个单引号。一个字符串的数组还可以由其他的字符串数组拼接而成。
e./f
11)克罗内克张量积
kron(a,b)表示利用a的每一个元素和b矩阵相乘,乘后分别作为结果矩阵的一块.
a=[1,2,3;4,5,6];
b=[1,0,0;0,1,0;0,0,1];
kron(a,b)
kron(b,a)
12)逻辑与&
当数组中的元素数字不为0,均表示逻辑1。
a=[1,2,3];
b=[3,4,5];
a.cat函数
cat函数用于连接数组,标准形式为c=cat(dim,A1,A2,A3,…)其中,dim表示传见数组的维数,A1,A2,A3表示各个维度上的数组。
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程序设计 参考答案
function y=f(x) y=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14)
河南财经政法大学数学与信息科学学院
6
实验报告
f(1)*f(2)+f(3)
function f=f(a,b,c) f=g(a)*g(b)+g(c)^2; function g=g(x) g=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14);
a=rand(1,100); [b,c]=sort(a); index=c(1); i=1; while i<=7 if i==8 disp('You Lost!'); i=i+1; else d=input('please input the number you guess:'); if d>index disp('High'); elseif d<index disp('Low'); elseif d==index disp('You won!'); i=9;
syms i j k l n i=1;k=0; n=input('Input n:'); for j=1:n i=i*j; k=k+j; end fprintf('%d!=%d \n Sum(1,...,%d)=%d\n',n,i,n,k);
4、用 while-end 循环语句求不超过 1000 的偶数之和,并求显示出最大值。 s=0,n=0; while s<=1000 n=n+2; s=s+n; if s>1000 break end
实验1 MATLAB使用方法和程序设计
实验1MATLAB 使用方法和程序设计一、实验目的1、掌握MATLAB 软件使用的基本方法。
2、熟悉MATLAB 的数据表示、基本运算和程序控制语句。
3、熟悉MATLAB 绘图命令及基本绘图控制。
4、熟悉MATLAB 程序设计的基本方法。
二、实验内容1.帮助命令使用Help 命令,查找sqrt (开方)函数的使用方法。
2、矩阵运算(1)矩阵乘法已知A=[12;34];B=[55;78];求A^2*B 。
(2)矩阵除法已知A=[123;456;789];B=[100;020;003];求A\B,A/B 。
(3)矩阵的转置及共轭转置已知A=[5+i ,2-i ,1;6*i ,4,9-i];求A.’,A’。
(4)使用冒号选出指定元素已知A=[123;456;789];求A 中第3列前2个元素;A 中所有列第2,3行的元素。
(5)方括号[]用magic 函数生成一个4阶魔术矩阵,删除该矩阵的第四列。
3、多项式(1)求多项式p(x)=x 3-2x-4的根。
(2)求f (x)=(cos x)2的一次导数。
(3)求微分方程的通解,并验证。
4、基本绘图命令(1)绘制余弦曲线cost =y ,]2,0[π∈t 。
(2)在同一坐标系中绘制余弦曲线0.25)-cos(t =y 和正弦曲线)5.0sin(-=t y ,]2,0[π∈t (3)用plot3函数绘制三维螺线:22xdy xy xe dx -+= sin()cos()x t y t z t =⎧⎪=⎨⎪=⎩(0<t <20)5、基本绘图控制4,0[ 区间上的X1=10sint曲线,并要求绘制](1)线形为点划线,颜色为红色,数据点标记为加号。
(2)使用axis坐标轴控制:显示范围、刻度线、比例、网络线。
(3)使用title、text、xlabel、legend等函数进行标注控制:坐标轴名称、标题、相应文本。
6、MATLAB基本程序设计(1)编写命令文件:计算1+2+…+n<2000时的最大n值。
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不仅提供了丰富的数学函数库和工具箱,还具备直观的图形界面和友好的交互环境,使得我们能够快速、高效地进行各种计算和分析。
实验1-----Matlab程序设计及绘图
实验一:Matlab程序设计及绘图一、实验目的1、掌握 Matlab 软件使用的基本方法;2、熟悉 Matlab 的编程方法;3、熟悉 Matlab 绘图命令及基本绘图控制。
二、实验内容1.基本绘图命令(1)绘制余弦曲线 y=cos(t),t∈[0,2π](2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π]2.基本绘图控制绘制[0,4π]区间上的 x1=10sint 曲线,并要求:(1)线形为点划线、颜色为红色、数据点标记为加号;(2)坐标轴控制:显示范围、刻度线、比例、网络线(3)标注控制:坐标轴名称、标题、相应文本;3.程序设计:找出从2开始的前100个素数,并依次排列显示。
三、实验原理MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。
MATLAB有3种窗口,即:命令窗口(The Command Window)、m-文件编辑窗口(The Edit Window)和图形窗口(The Figure Window),而Simulink另外又有Simulink模型编辑窗口。
1.命令窗口(The Command Window)当MATLAB启动后,出现的最大的窗口就是命令窗口。
用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。
在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。
在命令窗口中输入该文件名,这一连串命令就被执行了。
因为这样的文件都是以“.m”为后缀,所以称为m-文件。
2.m-文件编辑窗口(The Edit Window)我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。
在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。
实验五-MATLAB的程序设计
实验五MATLAB的程序设计一、实验目的1.熟悉MATLAB 的编程环境;2.熟悉和掌握脚本文件和函数文件建立与使用方法;3.掌握MATLAB程序设计的流程控制语句;4.掌握函数调用和参数传递;5.熟悉MATLAB 程序调试方法。
二、实验仪器1.计算机2.MATLAB 软件环境三、实验指导1. M 文本文件介绍一个M 文件通常包含五个部分,函数定义语句、H1 帮助行、帮助文本、函数体或者脚本文件语句和注释语句。
一个完整的M 文件的结构为:function f = fact(n) 函数定义语句% Compute a factorial value. H1 行% FACT(N) returns the factorial of N, 帮助文本% usually denoted by N!% Put simply, FACT(N) is PROD(1:N). 注释语句f = prod(1:n); 函数体函数定义语句只在函数文件中存在,定义函数名称、输入输出参数的数量和顺序。
函数定义语句的格式为:function y = fact(x)2. 函数流程控制顺序结构顺序结构是最简单的程序结构,系统在编译程序时,按照程序的物理位置顺序执行。
这种程序容易编制,但是结构单一,能够实现的功能有限。
判断语句(if…else…end)if…endif…else…endif…elseif…else…end1)if…end此时的程序结构如下:if 表达式执行代码块end这是最简单的判断语句,只有一个判断语句,其中的表达式为逻辑表达式,当表达式为真时,执行相应的语句,否则,直接跳到下一段语句。
2)if…else…end当程序有两个选择时,可以选择if…else…end 结构,此时程序结构为:if 表达式执行代码块1else执行代码块2end当判断表达式为真时,执行代码块1,否则执行代码块2。
3)if…elseif…else…end上面的两种形式中,分别包含一个选择和两个选择,当判断包含多个选择时,可以采用elseif 语句,结构为:if 表达式1执行代码块1elseif 表达式2执行代码块2elseif ..................else执行代码块end其中可以包含任意多个elseif 语句。
实验三MATLAB的程序设计
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语言程序设计一、实验内容:1、编写命令文件:计算 1+2+…+n<2000 时的最大 n 值;>> n=1; %将变量初值设为1sum=0;while((sum+n)<2000) %若s<2000成立,则执行下一条语句,否则结束本循环sum=sum+n; %求和运算n=n+1;endsum,n-1 %显示最终s和nsum =1953ans =622、编写函数文件:分别用 for 和 while 循环结构编写程序,求 2 的 0 到 15 次幂的和。
function xunhuan(x)sum=0;for(i=0:x)sum=sum+2^i;endy=sum>> xunhuan(15)y =65535function whilexun(x)sum=0;i=0;while(i<x)sum=sum+2^i;i=i+1;endy=sum>> whilexun(16)y =655353、如果想对一个变量 x 自动赋值。
当从键盘输入 y 或 Y 时(表示是),x 自动赋为 1;当从键盘输入 n 或 N 时(表示否),x 自动赋为 0;输入其他字符时终止程序。
a=input('输入一个字符:');switch acase 'y'x=1case 'Y'x=1case 'n'x=0case 'N'x=0otherwiseend输入一个字符:'Y'x =1二、实验思考题1.用FOR和WHILE语句有何要求?答:for语句的基本命令格式为for 循环变量=表达式1表达式3表达式2循环语句组End表达式1、表达式3、表达式2的定义和C语言相似即首先执行循环变量的初始值赋成表达式1的值然后判断循环变量的值介于表达式1和表达式2的值之间则执行循环体中的语句否则结束循环语句的执行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
科学计算与数据处理实验报告plot(data);运行结果:保存后选择debug/run菜单或按F5键运行,观察workspace中多出了一个变量data。
b)编写函数stderr验误差function err=stderr(arr)%实验误差(标准差估计)evaluate along each column of arr err=std(arr)./sqrt(size(arr,1)-1);文件存为stderr.m, 运行时输入a=[1;2;3];建立一个列数组a, 然后输入stderr(a)则给出a的方差运行结果:2、编写程序演示循环(for、while)、分支(if-else-end、switch-case)和异常处理(try-catch)控制结构的用法,并尽量体现各种关系运算符(==、~=、<、>、<=、>=)的用法。
a)演示循环(for、while)For循环>> %for循环sum1=0;sum2=0;n=input('请输入一个数:')>> if n<2disp('输入的数大于等于3')elsefor i=1:nsum1=sum1+1sum2=sum2+2endend运行结果:While循环>> %while循环sum11=0;sum22=0;n=input('请输入一个数:') >> if n<2disp('输入的数大于等于3')while n>=0sum11=sum11+1sum22=sum22+2n=n-1endend运行结果:b)分支(if-else-end、switch-case)if-else-end分支结构:>> %if-else-end分支:a=input('请输入一个数字:')a=a+1elsea=a+2end运行结果:switch-case分支结构:>> %switch-case>> n=input('请输入成绩:'); >> k=floor(n/10);switch kcase {8,9,10}disp('优秀')case 7disp('良好')case 6disp('一般')otherwisedisp('不及格')end运行结果:c)异常处理(try-catch)>> a=magic(4);b=eye(3);tryc=a*bc=a(1:3,1:3)*bcatchc=a(1:3,1:3)*bend运行结果:3、编写程序演示return、input、keyboard、pause、break、error、lasterr、warning、lastwarn等指令的功能和用法。
a)return的功能和用法>> %return>> n=input('请输入成绩:');>> k=floor(n/10);switch kcase {8,9,10}disp('优秀')returncase 7disp('良好')returncase 6disp('一般')returnotherwisedisp('不及格')returnend运行结果:b)input的功能和用法>> %input>> n=input('请输入一个数字:');>> k= mod (n,2);switch kcase 1disp('您输入的为奇数') returncase 0disp('您输入的为偶数') returnend运行结果:c)keyboard的功能和用法%keyboard启动键盘管理pause暂停执行>> n=input('请输入成绩:');if n<=0errordlg('请输入大于0的数');keyboardelsek=floor(n/10);switch kcase {8,9,10}disp('优秀')returncase 7disp('良好')returncase 6disp('一般')returnotherwisedisp('不及格')returnendend运行结果:d)pause的功能和用法%pausex=-pi:pi/10:piy1=(sin(x)).^2;subplot(1,2,1);plot(x,y1,'r');pause(5)y2=x.^2+x+3;subplot(1,2,2);plot(x,y2,'g');运行结果:暂停之后:e)break的功能和用法>> %breakfor n=1:100if mod(n,17)~=0continueendbreakenddisp(' 100以的自然数中第一个能被17整除的数是:')disp(n)运行结果:f)error的功能和用法n=input('请输入一个数字:');if(n>0)y=log(n);elseerror('定义域大于0');end运行结果:g)lasterr的功能和用法>> lasterr运行结果:h)warning的功能和用法%warning>> n=input('请输入成绩:');if n<=0warning ('请输入大于0的数');elsek=floor(n/10);switch kcase {8,9,10}disp('优秀')returncase 7disp('良好')returncase 6disp('一般')returnotherwisedisp('不及格')returnendend运行结果:i)lastwarn的功能和用法>> warning('定义域大于0');>> warning('定义域小于0');>> lastwarn运行结果:4、串演算实验:设计实验演示验证eval与feval的功能和用法。
a)eval的功能和用法K>> a='b=magic(4)';eval(a)运行结果:b)feval的功能和用法K>> h=sin;x=-pi:pi/10:pi;y=feval(h,x);运行结果:5、程序调试实验。
a)出错时运行结果:b)改正后把原程序中的xxmu=xmu*size(yy)改为xxmu=xmu*ones(size(yy))。
运行结果:改正后,函数实现的功能:6、程序性能剖析实验profile onrelaxzzy(300)profile viewer运行结果:函数实现的功能:Profile Summary窗口显示:relaxzzy函数的进行运行分析. . ...资料. . .由上例图可知,relaxzzy 函数中最耗时的语句是newplate(j,k)=(plate(jm1,km1)/2+plate(jm1,k)+...plate(jm1,kp1)/2+plate(j,km1)+plate(j,kp1)+...plate(jp1,km1)/2+plate(jp1,k)+plate(jp1,kp1)/2)/6其执行时间为0.651 s ,被调用次数为3000000次。
这个语句可以加速,用过向量化改为矩阵的形式,就可以加速了。
实验总结 MATLAB 脚本和函数的异同点:M 脚本文件与M 函数文件都是由一系列的语句组成的相对独立的一个运行体。
M 脚本文件没有参数传递功能,但M函数文件有此功能。
M 函数文件的格式有严格规定,它必须以“ function ”开头。
函数文件与脚本文件的主要区别在于:函数文件一般都要带参数 , 都要有返回结果 , 而脚本文件没有参数与返回结果。
函数文件的变量是局部变量 , 运行期间有效 , 运行完毕就自动被清除 , 而脚本文件的变量是全局变量 , 执行完毕后仍被保存在存中。
通过这次试验我掌握了M 文件的编写,运行和调试。
知道了函数文件和脚本文件的相同点和不同点。
同时也掌握了matlab 程序设计中的基本语法,关系运算,以及for 和while 循环结构,if-else-end 和switch 的分支结构和异常处理的try-catch 结构。
通过自己调试一个程序,明白了程序调试的基本方法。
自己通过对一个程序的性能剖析,知道了性能剖析的基本方法。