实验3 MATLAB程序设计
matlab实验报告(实验3)

开课学院及实验室:机电学院2012年11 月30日(1)、利用逐个输入法、冒号生成法以及定数线性采样法创建以下一维数组:X1=[1,2,3,4,5,6,7,8,9,10](2)、利用冒号生成法创建以下数组:X2=(1,2,3,4,9,8,7,6,5)(3)、利用定数对数生成法创建一个第一个元素为10,最后一个元素为100,元素个数为51的一维数组X3。
2、一维数组子数组的寻访和赋值以冒号生成法创建一个第一个元素为0,步长为0.1,最后一个元素为2的一维数组X4,并写出寻访或赋值的以下指令:a、寻访X4的第6个元素;b、同时寻访X4的第2、5、7个元素;c、寻访前3个元素组成的子数组;d、寻访除前3个元素外的全部的其他元素;e、由后三个元素倒排构成的子数组;f、由大于0.5的元素构成的子数组;g、把第三个元素重新赋值为0;把当前x数组的第一、四个元素都赋值为1。
3、二维数组的创建,子数组的寻访和赋值创建一个M文件(文件名为myMatrix.m),定义一个二维数组A,第一行为11至15、30至26共10个元素,第二行为1~10共10个元素。
然后运行改M文件,生成数组AM,并按以下方式寻访该数组:(1)寻访A的第一行;(2)寻访A的第三列;(3)同时寻访A的第三列和第五列;(4)把A的各列按自左至右的次序,首尾相接生成一个“一维长列”;(5)把A的第1行第1列、第2行第2列以及第1行第5列的元素重新赋值为10、20、30;(6)把A的第二行赋值为11~20。
4、标准数组的生成和数组操作函数生成以下数组或矩阵:(1)长度为4的全1行数组和4×4的全1行数组;(2)5阶单位阵;(3)生成一矩阵A,第一行为1、2,第二行为3、4;并使用diag函数生成A的对角线元素所组成的对角阵。
(4)生成一维数组A,其值为1~10,并使用reshape函数把其重排成2×5的数组B;(5)使用flipdim和fliplr函数对B进行翻转操作,从返回结果观察和总结各个函数的作用。
实验3 m文件程序设计

实验3. m文件程序设计一、实验目的1.通过练习理解matlab编程方法;2.掌握分支结构程序设计思路;3.掌握循环结构程序设计思路。
二、实验环境1.计算机2.matlab软件三、实验说明1.熟悉matlab运行环境,正确操作,认真观察;2.实验学时:2学时;3.学会使用help;4.编写程序前先写出程序的流程图框架;5.自主编写调试程序直到正确为止,必要时参考相关资料,;6.保存整理实验结果,提交实验报告。
四、实验内容1. 输入一个百分制成绩,要求输出成绩等级为:A、B、C、D、E,其中90-100为A;80-89为B;70-79为C;60-69为D;60以下为E1)用if或switch语句实现;2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩要输出出错信息提示,比如:输入成绩不能大于100。
3)程序保存名为sy3加上本人学号。
解:程序如下:Array x=input('输入一个百分制成绩');if(x>=90&x<=100)disp('A')elseif(x>=80&x<90)disp('B')elseif(x>=70&x<80)disp('C')elseif(x>=60&x<70)disp('D')elseif(x<60&x>0)disp('E') elseif (x<0) disp('Error') elseif (x>100) disp('Error') end2. 某公司员工的工资计算方法如下:(1)工作时数超过120小时者,超过部分加发15%; (2)工作时数低于60小时者,扣发700元; (3)其余按每小时84元计发。
解:程序如下:x=input('请输入员工工号');y=input('请输入员工工时数');s=y*84;if (y>=60&y<=120)disp(s)elseif (y>120)disp(s+s*0.15)elseif (y<60&y>8.4)disp(s-700)elseif (y<8.4)disp('0')end3. 根据, 1312111622222n ++++= π求π10000 时,结果是多少?要求:分别用循环结构和向量运算(使用sum 函数)来实现。
实验三(2)MATLAB程序设计并且附有答案

实验三(2)、MATLAB程序设计一、实验目的1、掌握建立和执行M文件的方法2、掌握利用for语句和while语句实现选择结构的方法二、实验内容及步骤1、分别使用for循环语句和while循环语句找出最小的n值,使得n!>10100,并求出n!。
要求显示的结果为n=70n!=+100>1e100或70!=+100>1e100用IF语句执行如下:s=1;for n=1:100s=s*n;if(s>10^100)break;endendstr1=['n=',num2str(n)];str2=['n!=',num2str(s)];disp(str1)disp(str2)用WHILE语句执行如下:n=1;s=1;while(s<=10^100)s=s*n;n=n+1;endstr1=['n=',num2str(n-1)];str2=['n!=',num2str(s)];disp(str1)disp(str2)2、已知 f1=1,n=1f2=0,n=2f3=1,n=3f n=f n-1-2f n-2+f n-3,n>3求f1 ~ f50中:1)最大值和最小值及它们的位置,各数之和(最大值给变量MAX,其位置给变量x,最小值给变量MIN,其位置给变量y,各数之和给变量SUM)。
2)正数、零、负数的个数(依次赋值给变量positive,zero,negative)。
clear;f(1)=1;f(2)=0;f(3)=1;for n=4:50f(n)=f(n-1)-2*f(n-2)+f(n-3);end[MAX,x]=max(f) %注意不要分号,要执行的语句[MIN,y]=min(f)SUM=sum(f)positive=length(find(f>0))zero=length(find(f==0))negative=length(find(f<0)) MAX =406631x =49MIN =-403795y =50SUM =76861positive =25zero =2negative =233、Fibonacci数组的元素满足Fibonacci规则:a k+2=a k+a k+1,(k=1,2,3,…);且a1= a2=1。
实验三-利用matlab程序设计语言完成某工程导线网平差计算

实验三利用mat lab程序设计语言完成某工程导线网平差计算实验数据;某工程项目按城市测量规范(CJJ8-99)不设一个二级导线网作为首级平面控制网,主要技术要求为:平均边长200cm,测角中误差±8,导线全长相对闭合差<1/10000,最弱点的点位中误差不得大于5cm,经过测量得到观测数据,设角度为等精度观测值、测角中误差为山=±8秒,鞭长光电测距、测距中误差为m二± Vsmm,根据所学的‘误差理论与测量平差基础'提出一个最佳的平差方案,利用matlab完成该网的严密平差级精度评定计算;平差程序设计思路:1采用间接平差方法,12个点的坐标的平差值作为参数.利用matlab进行坐标反算,求出已知坐标方位角;根据已知图形各观测方向方位角;2计算各待定点的近似坐标,然后反算出近似方位角,近似边. 计算各边坐标方位角改正数系数;3确定角和边的权,角度权Pj=1 ;边长权Ps=100/S;4计算角度和边长的误差方程系数和常数项,列出误差方程系数矩阵 B,算出Nbb=B’ PB,W=B’ Pl,参数改正数 x=inv(Nbb)*W;角度和边长改正数V=Bx-l; 6建立法方程和解算x,计算坐标平差值,精度计算;程序代码以及说明:s10=;s20=;s30=;s40=;s50=;s60=;s70=;s80=;s90=;s100=;s110=;s120=;s130=;s140=; %已知点间距离Xa=;Ya二;Xb=;Yb=;Xc=;Yc=;Xd=;Yd=;Xe=;Ye=;Xf=;Yf=; %已知点坐标值a0=atand((Yb-Ya)/(Xb-Xa))+180;d0=atand((Yd-Yc)/(Xd-Xc));f0=atand((Yf-Ye)/(Xf-Xe))+360; %坐标反算方位角a1=a0+(163+45/60+4/3600)-180a2=a1+(64+58/60+37/3600)-180;a3=a2+(250+18/60+11/3600)-180;a4=a3+(103+57/60+34/3600)-180;a5=d0+(83+8/60+5/3600)+180;a6=a5+(258+54/60+18/3600)-180-360;a7=a6+(249+13/60+17/3600)-180;a8=a7+(207+32/60+34/3600)-180;a9=a8+(169+10/60+30/3600)-180;a10=a9+(98+22/60+4/3600)-180;a12=f0+(111+14/60+23/3600)-180;a13=a12+(79+20/60+18/3600)-180;a14=a13+(268+6/60+4/3600)-180;a15=a14+(180+41/60+18/3600)-180; %推算个点方位角 aa=[a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a12 a13 a14 a15]'X20=Xb+s10*cosd(a1);X30=X20+s20*cosd(a2);X40=X30+s30*cosd(a3);X50a=X40+s40*cosd(a4);X60=Xd+s50*cosd(a5);X70=X60+s60*cosd(a6);X80=X70+s70*cosd(a7);X90=X80+s80*cosd(a8);X100=X90+s90*cosd(a9);X50c=X100+s100*cosd(a10);X130二Xf+s110*cosd(a12);X140=X130+s120*cosd(a13);X150=X140+s130*cosd(a14);X50e=X150+s140*cosd(a15); %各点横坐标近似值X0=[X20 X30 X40 X60 X70 X80 X90 X100 X130 X140 X150 X50a X50c X50e]'Y20=Yb+s10*sind(a1);Y30=Y20+s20*sind(a2);Y40=Y30+s30*sind(a3);Y50a=Y40+s40*sind(a4);Y60=Yd+s50*sind(a5);Y70=Y60+s60*sind(a6);Y80=Y70+s70*sind(a7);Y90=Y80+s80*sind(a8);Y100=Y90+s90*sind(a9);Y50c=Y100+s100*sind(a10);Y130=Yf+s110*sind(a12);Y140=Y130+s120*sind(a13);Y150=Y140+s130*sind(a14);Y50e=Y150+s140*sind(a15); %个点从坐标近似值Y0=[Y20 Y30 Y40 Y60 Y70 Y80 Y90 Y100 Y130 Y140 Y150 Y50a Y50c Y50e]'P=[X0 Y0];X50=(X50a+X50c+X50e)/3Y50=(Y50a+Y50c+Y50e)/3s4二sqrt((Y40-Y50)"2+(X40-X50厂2);si二sqrt((Y100-Y50厂2+(X100-X50厂2);s14二sqrt((Y150-Y50)"2+(X150-X50厂2);A1=[cosd(a1) cosd(a2) cosd(a3) cosd(a4) cos(a5) cosd(a6) cosd(a7) cosd(a8) cosd(a9) cosd(a10) cosd(a12) cosd(a13) cosd(a14) cosd(a15)]';B11=[sind(a1) sind(a2) sind(a3) sind(a4) sin(a5) sind(a6) sind(a7) sind(a8) sind(a9) sind(a10) sind(a12) sind(a13) sind(a14) sind(a15)]';s=blkdiag(s10,s20,s30,s4,s50,s60,s70,s80,s90,s10',s110,s120,s130,s14);a=*inv(s)*B11b=*inv(s)*A1ab4=atand((Y50-Y40)/(X50-X40))+180;ab10=atand((Y50-Y100)/(X50-X100));ab14=atand((Y50-Y150)/(X50-X150))+360;m4=ab4-a3+180;m10=ab10-a9+180;m11=ab4-ab10;m15=ab14-a14+180;m16=ab10-ab14+360;m04=103+57/60+34/3600;m010=98+22/60+4/3600;m011=94+53/60+50/3600;m015=180+41/60+18/3600;m016=ab10-ab14+360;l=[0 0 0 m4-103-57/60-34/3600 0 0 0 0 0 m10-98-22/60-4/3600 m11-94-53/60-50/3600 0 0 0 m15T80-41/60T8/3600m16-103-23/60-8/3600 0 0 0 s40-s4 0 0 0 0 0 s100-s1 0 0 0 s140-s14]';e1=(abs(X20-Xb))/s10;e2=(abs(X30-X20))/s20;e3=(abs(X40-X30))/s30;e4=(abs(X50-X40))/s4;e5=(abs(X60-Xd))/s50;e6= (abs(X70-X60))/s60;e7=(abs(X80-X70))/s70;e8=(abs(X90-X80))/s80;e9=(abs(X100-X90))/s90;e10=(abs(X50-X100))/s1;e11=(abs(X130-Xf))/s110;e12=(abs(X140-X130 ))/s120;e13=(abs(X150-X140))/s130;e14=(abs(X50-X150))/s 14;e=[e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e13 e14]' m1=(abs(Y20-Yb))/s10;m2=(abs(Y30-Y20))/s20;m3=(abs(Y40-Y30))/s30;m4=(abs(Y50-Y40))/s4;m5=(abs(Y60-Yd))/s50;m6= (abs(Y70-Y60))/s60;m7=(abs(Y80-Y70))/s70;m8=(abs(Y90-Y80))/s80;m9=(abs(Y100-Y90))/s90;m10=(abs(Y50-Y100))/s1;m11=(abs(Y130-Yf))/s110;m12=(abs(Y140-Y130 ))/s120;m13=(abs(Y150-Y140))/s130;m14=(abs(Y50-Y150))/s 14;m=[m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 m11 m12 m13 m14]' % 以上为求得误差方程系数B=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0%系数矩阵B0 0 ]P=blkdiag(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,100/s10,100/s 20,100/s30,100/s40,100/s50,100/s60,100/s70,100/s80,100/ s90,100/s100,100/s110,100/s120,100/s130,100/s140); %定义权矩阵Nbb二B'*P*BW=B'*P*l;x=inv(Nbb)*WV=B*x-l;inv(Nbb);Y=V'*P*V;O二sqrt(Y/6)*3600 %精度评定计算结果:平差值坐标X:+003 *Qx1= Qy1= Qx2= Qy2= ……Qx15= Qy15=。
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程序设计》实验指导书

三、
实验仪器和设备
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程序设计实验
实用标准文案
科学计算与数据处理实验报告
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
函数中最耗时的语句是relaxzzy由上例图可
知,...newplate(j,k)=(plate(jm1,km1)/2+plate(jm1,k)+...plate(jm1,kp1)/2+plate(j,km1)+plate(j, kp1)+精彩文档.
实用标准文案
精彩文档.实用标准文案
注:实验方案要详略得当、条理清晰,实验记录数据详实,实验总结应做高度归纳和提炼。
精彩文档.。
实验三 MATLAB小波实现
实验三 MATLAB 小波实现实验题目:利用MATLAB 实现一些小波函数,并绘图实验内容:1. Haar 小波函数(1) 定义函数源程序:function Haarfor x=0:0.001:2if x>=0&x<=0.5H=1;elseif x>=0.5&x<=1H=-1;elseH=0;endplot(x,H,'k')axis([0,2,-2,2]) title('Harr 定义函数')hold onendhold offend运行程序得图:⎪⎪⎩⎪⎪⎨⎧<≤-≤≤=其它012112/101x x H ψ(2) 尺度函数源程序:function harrfor x=0:0.001:2if x>=0&x<=1H=1;elseH=0;endplot(x,H,'k')axis([0,2,-2,2]) title('Harr 尺度函数')hold onendhold offend00.20.40.60.81 1.2 1.4 1.6 1.82Harr 定义函数⎩⎨⎧≤≤=其它0101)(x x φ运行程序得图:2. Mexican Hat 小波函数函数定义为:源程序:function MexicanHat[psi,x]=mexihat(-5,5,1000);plot(x,psi,'k') title('Mexican Hat 小波')end运行程序得图:00.20.40.60.81 1.2 1.4 1.6 1.82Harr 尺度函数2/24/12e )1(π32)(x x x ---=ψ3. Meyer 小波函数(1)定义函数v (a )为构造Meyer 小波的辅助函数,且有v (a )=a 4(35-84a +70a 2-20a 3),a ∈[0,1](2)尺度函数-5-4-3-2-1012345-0.4-0.20.20.40.60.81Mexican Hat 小波⎪⎪⎪⎩⎪⎪⎪⎨⎧∉≤≤-≤≤-=--]3π8,3π2[,03π83π4)),1π23(2πcos(e π)2(3π43π2)),1π23(2πsin(e π)2()(ˆ2/i 2/12/i 2/1ωωωνωωνωψωω⎪⎪⎪⎩⎪⎪⎪⎨⎧>≤≤-≤=--3π403π43π2))1π23(2πcos(π)2(3π2π)2()(2/12/1ωωωνωωΦ源程序:function Meyer[phi,psi,x]=meyer(-8,8,1024);figure(1);plot(x,psi,'k'),title('Meyer 定义函数') figure(2);plot(x,phi,'k'),title('Meyer 尺度函数') end运行程序得图:-8-6-4-202468-1-0.50.511.5Meyer 定义函数4. Morlet 小波函数函数定义为:源程序:function Morlet[psi,x]=morlet(-4,4,1000);plot(x,psi,'k')title('MorletС²¨')end运行程序得图:-8-6-4-202468-0.4-0.20.20.40.60.811.2Meyer 尺度函数)5cos(e )(2/2x C x x -=ψ5. Gauss 函数族 同一坐标系中ααπα4221)(x e x g -= 161,41,1=α 及其频域形式 源程序:function Gaussx=-5:0.001:5;g1=1/(2*pi^(1/2))*exp(-x.^2/4);g2=1/(pi^(1/2))*exp(-x.^2);g3=2/(pi^(1/2))*exp(-4*x.^2);plot(x,g1,x,g2,x,g3);title('Gauss 函数族')end运行程序得图:-4-3-2-101234-1-0.8-0.6-0.4-0.20.20.40.60.81Morlet 小波-5-4-3-2-101234500.20.40.60.811.21.4Gauss 函数族。
matlab 实验教程 实验三
实验三实验目的:1.学习使用M文件编写程序,以及函数文件的编写。
2.学习在MATLAB中使用符号数学工具箱。
3.学习在MATLAB中用数值法和符号法解方程。
4.学习在MATLAB中的矩阵分解方法。
实验内容:1.M文件的编写(1)将实验一中的任一个练习编写成M文件,并根据command窗口中的提示调试改错。
要求将Page 30的例2-4-5编写成M文件实验具体步骤:新建New M-File,在M文件中输入以下语句:%构成hilbert矩阵clear,close allformat ratn=input('n=');for i=1:nfor j=1:nh(i,j)=1/(i+j-1);endendh保存文件并运行此文件。
命令窗口显示如下:n=3h =1 1/2 1/31/2 1/3 1/41/3 1/4 1/5(2) 编写一个函数文件(注意:函数名称和文件名)参见课本Page49实验具体步骤:新建New M-File ,在M 文件中输入以下语句: function y=mean(x)%对于向量,mean(x)返回该向量x 中各元素的平均值%对于矩阵,mean(x)是一个包含各列元素平均值的行向量[m,n]=size(x);if m==1 m=n;end %处理单行向量y=sum(x)/m保存文件,必须以mean.m 保存此文件。
调用mean 函数,查看结果。
命令窗口显示如下:>> x=[1 2 3;4 5 6;7 8 9;]x =1 2 34 5 67 8 9>> mean(x);y =4 5 6(3) 编写一个程序并调用函数,用global 变量传递参数值要求求微分方程数值解0)1(2=+-+y y y r y设2,1y yy y == 可将上述方程写成两个一阶微分方程,并用矩阵表示:12)11(2212y y y r y y y--==实验具体步骤:先要建立反映此微分方程组右端项的函数文件vdpl.m建立名为vdpl.m 的M 文件,并输入如下语句:function yprime=vdpl(x,y)global ryprime=[y(2);r*(1-y(1).^2).*y(2)-y(1)]; %微分方程右端项建立主程序的M文件,并输入如下语句:global rr=input('输入r的值,在0<r<10之间选择\nr=');x0=input('x0=');xf=input('xf=');y0=input('y0=[y10;y20]=');[x,y]=ode23(@vdpl,[x0 xf],y0);plot(x,y)保存文件并运行,命令窗口显示如下:输入r的值,在0<r<10之间选择r=1x0=0xf=1y0=[y10;y20]=[2;2]2.学习使用数学符号工具箱。
matlab程序设计教程第三版 实验指导
matlab程序设计教程第三版实验指导MATLAB 是一种非常强大的数学软件工具,可以用于问题建模、算法实现、数据分析和可视化等多个领域。
本实验指导将引导读者从基本的程序设计开始,逐步学习如何使用 MATLAB 进行编程。
在开始编程之前,我们首先要熟悉 MATLAB 的界面。
MATLAB 的界面非常直观和友好,具有丰富的交互功能和图形界面。
我们将逐步介绍 MATLAB 工作环境中的各个组件,并向读者展示如何创建新的脚本文件、运行代码以及调试程序。
接下来,我们将深入研究 MATLAB 编程的核心概念和语法。
我们将介绍如何定义变量、进行数学运算、编写条件语句和循环结构,以及如何使用函数和脚本文件。
我们还将探讨如何创建和操作矩阵、处理字符串和字符数组,并介绍 MATLAB 中常用的文件处理和输入输出操作。
在学习完基本的 MATLAB 编程知识后,我们将进一步学习如何解决实际的问题和应用。
我们将通过一系列的实例,引导读者学习如何构建和调试复杂的算法,如排序、搜索、图形绘制等。
我们还将介绍如何处理和分析实际的数据集,包括数据读取、预处理、统计分析和可视化等。
最后,我们将介绍如何通过 MATLAB 进行更高级的编程和应用开发。
我们将向读者展示如何编写自定义函数和类,以及如何使用MATLAB 的工具箱和库函数进行更加专业和复杂的编程任务。
我们还将了解如何编写 GUI 界面程序,以及如何进行并行计算和部署应用程序。
通过本实验指导的学习,读者将能够掌握 MATLAB 的基本编程技巧和应用技术,并能独立解决实际问题。
无论是从事科学研究、工程设计还是数据分析和可视化,MATLAB 都是一种非常有用和高效的工具。
希望本实验指导能够为读者提供全面、生动和有指导意义的学习内容,帮助读者在 MATLAB 的世界中游刃有余。
- 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
y(i)=(-x(i).^2-4*x(i)-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')
-3-2-10123
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
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