MATLAB全部实验及答案_第1页
MATLAB全部实验及答案_第2页
MATLAB全部实验及答案_第3页
MATLAB全部实验及答案_第4页
MATLAB全部实验及答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB全部实验及答案实验一、MATLAB基本操作 实验内容及步骤4、 有关向量、矩阵或数组的一些运算(1) 设A=15;B=20;求C=A+B与c=a+b?(2) 设A=1 2 3;4 5 6;7 8 9,B=9 8 7;6 5 4;3 2 1;求A*B与A.*B? A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3) 设a=10,b=20;求i=a/b=0.5与j=ab=2?(4) 设a=1 -2 3;4 5 -4;5 -6 7请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标。clear,clca=1 -2 3;4 5 -4;

2、5 -6 7;x,y=find(a A = 1 2 3 ; B = 4 5 6 ; C = 3.A D = A.B 5、 已知若需要计算t-1,1,取间隔为0.01,试计算出相对应的y值。用步长为0.01的for循环 搞定实验二、MATLAB运算基础 实验内容及步骤(一)2、 设有矩阵A和B,A=1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25,B=3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11(1) 求它们的乘积C(2) 将矩阵C的右下角3x2子矩阵赋给D解:A=1 2 3 4 5;6

3、 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25;B=3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11;c=A*BD=c(3:5,2:3)D=c(3,4,5,2,3)3、 已知A=23 10 -78 0;41 -45 65 5;32 5 0 32;6 -54 92 14,取出其前3行构成矩阵B,其前两列构成矩阵C,其左下角3x2子矩阵构成矩阵D,B与C的乘积构成矩阵E,分别求ED、E&D、E|D、E|D。解: A=23 10 -78 0;41 -45 65 5;32 5 0 32;6 -54 92 14; B=

4、A(1:3,:) c=A(:,1,2) D=A(2:4,1,2) E=B*c ED,E&D,E|D,E|D4、 使用函数,实现矩阵左旋90或右旋90的功能解:A=23 10 -78 0;41 -45 65 5;32 5 0 32;6 -54 92 14 rot90(A) rot90(A,3)5、求S=20+21+22+23+24+210的值(提示:利用求和函数与累乘积函数。)解:a=2*ones(1,10) b=cumprod(a) c=sum(b)+1 aa=2*ones(1,11) aa(1)=1 bb=cumprod(aa) cc=sum(bb)(二)1、求100,999之间能被61整除

5、的数及其个数(提示:先利用冒号表达式,再利用find和length函数。)2、建立一个字符串向量,删除其中的大写字母(提示:利用find函数和空矩阵。)解:1)clear,clc 2)clear,clc t=100:999; b=asSldSjfkSlGjFhslFf i=find(rem(t,61)=0); d=find(b=A); t(i) b(d)= d=size(i,1)*size(i,2)3、 写出使以下这段文字成为字符串的MATLAB指令。注意保持这段文字的格式:在英式用法中,引号通常是单引号,如Fire!。In GB usage quotation marks are usual

6、ly single: fire!. 解:a=在英式用法中,引号通常是单引号,如Fire!。 ; b=In GB usage quotation marks are usually single: fire!. ; c=strvcat(a,b)4、 用结构体数组来存储2名学生的基本情况数据,每名学生的数据包括学号、姓名、专业和2门课程的成绩。解:clear,clcxuesheng=struct(num,222,22,name,mike,hike,major,tele,score,rand(2,1)*100,rand(2,1)*100) xuesheng.score5、 建立矩阵A并回答有关问题A

7、1,1=1;A1,2=Brenden;A2,1=reshape(1:9,3,3);A2,2=12,34,2;54,21,3;4,23,67;1) 使用访问的方式如何将Brenden改写成BRENDEN?2) 分别执行A(3)=和A3=后,A的值各是多少?并说明原因。解:A1,1=1;A1,2=Brenden;A2,1=reshape(1:9,3,3);A2,2=12,34,2;54,21,3;4,23,67;A1,2=upper(A1,2)A3=A(3)=6、 利用MATLAB提供的rand函数和圆整函数随机生成43整数矩阵A,进行如下操作1)A各列元素的平均值和中值2)A的最大元素和最小元素

8、及它们的位置3)求A的每行元素的和以及全部元素之和4)分别对A的每列元素按升序、每行元素按降序排列解:A=round(rand(4,3)A_mean=mean(A)A_median=median(A)A_max=max(max(A)A_min=min(min(A)x,y=find(A=A_max)xx,yy=find(A=A_min)A_maxlocal=x(1) y(1)A_minlocal=xx(1) yy(1)A_rsum=sum(A,2)A_sum=sum(sum(A)A_csort=sort(A)A_rsort=abs(sort(-A,2)实验四 MATLAB循环结构程序设计 实验内

9、容及步骤1、 分别使用for循环语句和while循环语句找出最小的n值,使得n!10100,并求出n!。要求显示的结果为 n=70n!=1.e+1001e100或70!=1.e+1001e100 用IF语句执行如下: s=1;for n=1:100 s=s*n; if(s10100) break; endendstr1=n=,num2str(n);str2=n!=,num2str(s);disp(str1)disp(str2) 用WHILE语句执行如下: n=1;s=1;while(s3求f1 f50中:1)最大值和最小值及它们的位置,各数之和(最大值给变量MAX,其位置给变量x,最小值给变量

10、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);endMAX,x=max(f) %注意不要分号,要执行的语句 MIN,y=min(f)SUM=sum(f)positive=length(find(f0)zero=length(find(f=0)negative=length(find(f3 f(n)=f(n-1)-2*f(n-2)+f(n-3);endend MAX,y

11、=max(f) Min,x=min(f) positive=length(find(f0) zero=length(find(f=0) negative= length(find(f10000 break; endenddisp(k=,num2str(k)disp(a(k)=,num2str(a(k)法二:clear,clcs=1;for n=1:inf s=s*n; if s10100 break endendfprintf(%d!=%1.6e1e100n,n,s)实验五、MATLAB选择结构程序设计 实验内容及步骤1、 输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分10

12、0分为A,80分89分为B,70分79为C,60分69分为D,60分以下为E。要求:1)分别用if语句和switch语句实现 2)对不合理的成绩应输出出错信息“输入的成绩不合理”(若成绩出现小数,则只能是“.5”)解:score=input(请输入您的分数:); if rem(score,0.5)=0switch score case num2cell(90:0.5:100) disp(您的成绩等级为 A) case num2cell(80:0.5:89) disp(您的成绩等级为 B) case num2cell(70:0.5:79) disp(您的成绩等级为 C) case num2cel

13、l(60:0.5:69) disp(您的成绩等级为 D) case num2cell(0:0.5:59.5) disp(您的成绩等级为 E) otherwise disp(你输入的成绩不合理)end else disp(你输入的成绩不合理,若出现小数只能是0.5) end2、 设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,显示相应的结果,并要求结果显示类似于“a=x+y=34”。(sy312.m) 解:a=input(请输入一个数:);b=input(请再输入一个数:);fuhao=input(请输入一个运算符号(+ - * /):,s

14、);switch fuhao case + he=a+b; disp(输入的两数和=,num2str(a),+,num2str(b),=,num2str(he) case - he=a-b; disp(输入的两数差=,num2str(a),-,num2str(b),=,num2str(he) case * he=a*b; disp(输入的两数乘积=,num2str(a),*,num2str(b),=,num2str(he) case / he=a/b; disp(输入的两数商=,num2str(a),/,num2str(b),=,num2str(he) otherwise disp(请输入正确

15、的符号)end3、 求下列分段函数的值 要求:用if语句实现,分别输出x = -5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。其中x的值以向量的形式从键盘输入。(sy313.m)解:x=; y=; x=input(请输入x的值:); for k=1:length(x) if x(k)=0&x(k)10100,并求出n!”程序中调用该函数。 解:function s=jiecheng(n)s=1;if n=0 s=1;elseif n0 error(n必须大于等于0)else for i=1:n s=s*i;endend实验八 数据插值与曲线拟合实验实验内容1.已知原始数据,

16、插值点为,试用四种不同的插值方法进行插值,并在一副图中绘出四种插值曲线。解:clear,clcx=0:1:4*pi;y=sin(x).*exp(-x/5);xi=0:0.3:4*pi;y1=interp1(x,y,xi,nearset);y2=interp1(x,y,xi,linear);y3=interp1(x,y,xi,spline);y4=interp1(x,y,xi,cubic);plot(x,y,-m,xi,y1,*r,xi,y2,ok,xi,y3,b,xi,y4,+g) legend(原始数据,最近点插值,线性插值,样条插值,立方插值)title(第一题 四种插值方法进行插值,Fo

17、ntName,隶书,FontSize,20)xlabel(X轴,FontName,隶书,FontSize,16)ylabel(Y轴,FontName,隶书,FontSize,16)2. 考虑下面的数据,一位举重教练收集了不同性别的举重动员每个年龄的最大举重磅数,他相信这三者之间存在着函数关系,请创建一个年龄数组,以便估算当前队伍中队员(要求1320岁每一岁都有)的最大举重。重举大最1315171920男270290330350380女250270310330360解:clear,clct=13 15 17 19 20;sex=0,1;y=270 290 330 350 380;250 270

18、310 330 360 ;x=13:20;sex_2=0,1;y_2=interp2(t,sex,y,x,sex_2)surf(x,sex_2,y_2)3.某乡镇企业2004-2010年的生产利润如下年份2004200520062007200820092010利润(万元)70122144152174196202要求用多项式拟合法预测出该企业2011年和2012年的利润,并绘出拟合图。解:x=2004:2010;y=70 122 144 152 174 196 202;k=polyfit(x,y,1); %得到系数x1=2004:2013;y1=polyval(k,x1);plot(x,y,-r

19、o,x1,y1,-b*);title(某乡镇企业2004-2013年的生产利润)legend(04-10年的利润,04-13年的利润趋势线)xlabel(年份);ylabel(利润);text(2011,polyval(k,2011),-2011年利润)text(2012,polyval(k,2012),-2012年利润)grid on4. 先使用命令load加载census.mat得到一组数据(cdate,pop),该数据是美国自1790到1990年(以10年为一单位)的总人口。利用回归法拟合,预测出美国在2010年的人口总数,写出拟合模型,并绘出拟合图。解:clear all,clcloa

20、d(census.mat);nian=1990:2010;p=polyfit(cdate,pop,2);z=polyval(p,cdate);zz=polyval(p,nian);my=mean(pop);mz=mean(z);R=sum(pop-my).*(z-mz)./sqrt(sum(pop-my).2).*sum(z-mz).2)plot(cdate,pop,*,cdate,z,r,nian,zz,b-)xlabel(年 份(十年),FontName,隶书,FontSize,16)ylabel(人口(百万),FontName,隶书,FontSize,16)title(第四题 美国自17

21、90-1990年的总人口,FontName,隶书,FontSize,20)text(1990, 248.73,-之后为拟合数据)legend(原数据,拟合曲线) 实验九 MATLAB绘图 实验内容1、 二维图形的绘制1)设计程序,在一个图形窗体中画出函数y=ex和y=logx的特性曲线。其中y=ex中x取值为(-2:0.1:2),y=logx中x取值为(0.1:0.1:5)。要求:要有图例、标题(二维图)、坐标轴标签(x轴数据和y轴数据);每条曲线的clm自己设置。 解:clear,clc x1=-2:0.1:2; y1=exp(x1); x2=0.1:0.1:5; y2=log(x2); p

22、lot(x1,y1,-r,x2,y2,-b); title(二维图); legend(y=exp(x),y=log(x); xlabel(x轴数据); ylabel(y轴数据); grid on;2)绘制tan图形,其中x的取值为(0:pi/30:pi/2)。要求:要有图例、标题、坐标轴标签(x轴数据和y轴数据);曲线的clm自己设置。绘制出的图形应如下右图所示。解:x=0:pi/100:pi/2; y=tan(x); plot(x,y,-r+); axis(0 pi/2 0 5); title(正切函数); legend(y=tan(x); xlabel(x轴数据);ylabel(y轴数据); 3)绘制曲线 x=tcos(3t) y=tsin2t 其中-t,步长取/100。要求:要有图例、标题、坐标轴标签;每条曲线的clm自己设置。 解:clear,clc t=-pi:pi/100:pi; x=t.*cos(3*t); y=t.*sin(t).2; plot(x,y); title(曲线图); legend(strvcat(x=tcos(3t),y=tsin2t); xlabel(x轴数据); ylabel(y轴数据);2、 三维图形的绘制分别用线框图和曲面图表现函数z=cos(x)sin(y)/y,其中x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论