1、中 南 林 业 科 技 大 学MATLAB 程序设计教程上机实验报告专业:机械设计制造及其自动化班级:2011 级机械 4 班姓名:李衍丹学号:20111292指导老师:辜良瑶机电工程学院2013 年 1 月 5 日中 南 林 业 科 技 大 学0第一次上机作业1、求下列表达式的值,显示 MATLAB 工作空间的使用情况并保存全部变量,变量保存的文件名必须包含自己的学号后四位数:(1) )103425.(6w(2) 其中 a=3.5,b=5,c=9.8。,)tan(cbex(3) ,其中 ,)483.0(412 y 32.9.7(4) ,其中ln22tezt6501i程序代码及结果:(1) w
2、=sqrt(2)*(1+0.34245e-6)w =1.4142(2) x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2)/(tan(b+c)+a)x =6.6186(3) y=2*pi*d*d*(1-pi/4)*e-(0.8333-pi/4)*d)y =-128.4271(4) t=2,1-3i;5,-0.65 z=(1/2)*exp(2*t)*log(t+sqrt(1+t*t)z =1.0e+004 *0.0057 - 0.0007i 0.0049 - 0.0027i1.9884 - 0.3696i 1.7706 - 1.0539i2. 已知 , ,求下列表达式的值:761
3、38045A02351B(1) 、 (其中 I 为单位阵) ;B2(2)A*B、A.*B、B*A 、B.*A ;(3)A/B、BA;(4)A, B、A(1 3,:);B2。程序代码及结果:(1) A=-1,5,-4;0,7,8;3,61,7,B=8,3,-1;2,5,3;-3,2,0 A+6*Bans =中 南 林 业 科 技 大 学147 23 -1012 37 26-15 73 7 I=eye(3)I =1 0 00 1 00 0 1 A*A-B+Ians =-18 -217 1722 533 10921 867 526(2) A*Bans =14 14 16-10 51 21125 32
4、8 180 A.*Bans =-8 15 40 35 24-9 122 0 B*Aans =-11 0 -157 228 533 -1 28 B.*Aans =-8 15 40 35 24-9 122 0(3) A/Bans =1.2234 -0.9255 2.9787-0.9468 2.3511 -0.95744.6170 3.8723 13.8936 BAans =-0.5106 -8.6170 -1.12770.7340 17.5745 1.8085-0.8830 -21.2128 0.4043(4) A,B中 南 林 业 科 技 大 学2ans =-1 5 -4 8 3 -10 7 8
5、 2 5 33 61 7 -3 2 0 A(1 3,:);B2ans =-1 5 -43 61 773 37 117 37 13-20 1 93. 已知 14.354.962032678.A(1) 、取出 A 的前三行构成矩阵 B,其前两列构成矩阵 C,其右下角 32 子矩阵构成的矩阵 D,B 与 C 的乘积构成矩阵 E。(2) 、分别求 E B=A(1:3,1:4)B =23.0000 10.0000 -0.7780 041.0000 -45.0000 65.0000 5.000032.0000 5.0000 0 32.0000 C=A(1:4,1:2)C =23.0000 10.00004
6、1.0000 -45.000032.0000 5.00006.0000 -9.5400 D=A(2:4,3:4)D =65.0000 5.00000 32.000054.0000 3.1400 E=B*CE =1.0e+003 *0.9141 -0.22391.2080 2.71231.1330 -0.2103(2) E E2 5 8 11;3 6 9 12;4 7 10 13A =1 4 7 102 5 8 113 6 9 124 7 10 13 rot90(A)ans =10 11 12 137 8 9 10中 南 林 业 科 技 大 学44 5 6 71 2 3 4 rot90(A,-3
7、)ans =10 11 12 137 8 9 104 5 6 71 2 3 46. 建立一个字符串向量(要求字符串向量必须包含自己的姓名,大小写均可) ,删除其中的大写字母。程序代码及结果:xm=My name is Liyandanxm =My name is Liyandan xm=My name is Liyandanxm =My name is Liyandan k=find(xm=A char(xm)ans =My name is Liyandan7. 分别建立一个结构矩阵和一个单元矩阵来存储自己班上 5 名同学的基本情况数据(其中 1 名同学必须是自己,另外一名必须是女生) ,每名
8、学生的数据包括学好、姓名、专业和 6 门课程的成绩。并查询自己的所有信息以及女生的成绩。程序代码及结果: a.xuehao=20111409;a.name=欧阳冬枚;a.major=机械 4 班;a.grade=87 98 92 91 94 96a = xuehao: 20111409name: 欧阳冬枚major: 机械 4 班grade: 87 98 92 91 94 96 b.xuehao=20111292;b.name=李衍丹;b.major=机械 4 班;b.grade=91 85 81 88 97 90b = xuehao: 20111292name: 李衍丹major: 机械 4
9、 班grade: 91 85 81 88 97 90 c.xuehao=20111291;c.name=李翔宇;c.major= 机械 4 班;c.grade=87 87 91 95 93 93中 南 林 业 科 技 大 学5c = xuehao: 2011191name: 李翔宇major: 机械 4 班grade: 87 87 91 95 93 93 d.xuehao=20111302;d.name=王伟;d.major=机械 4 班;d.grade=84 87 92 91 85 94d = xuehao: 20111302name: 王伟major: 机械 4 班grade: 84 87
10、 92 91 85 94 e.xuehao=20111311;e.name=尹章良;e.major= 机械 4 班;e.grade=88 93 87 91 84 96e = xuehao: 20111311name: 尹章良major: 机械 4 班grade: 88 93 87 91 84 96 z=20111409,欧阳冬枚,机械 4 班,87 98 92 91 94 96;20111292,李衍丹,机械4 班,91 85 81 88 97 90;20111291,李翔宇,机械 4 班,87 87 91 95 93 93;20111302,王伟,机械 4 班,84 87 92 91 85
11、94;20111311,尹章良,机械 4 班,88 93 87 91 84 96z = 20111409 欧阳冬枚 机械 4 班 1x6 double20111292 李衍丹 机械 4 班 1x6 double20111291 李翔宇 机械 4 班 1x6 double20111302 王伟 机械 4 班 1x6 double20111311 尹章良 机械 4 班 1x6 double第二次上机作业1.分析脚本 M 文件与函数文件的区别。区别:1) 、脚本 M 文件没有输入参数,也不返回输出参数,而函数 M 文件可以带参数,也可以返回输出参数;2) 、脚本 M 文件对 MATLAB 工作空间中
12、的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数 M 文件中定义的变量为局部变量,当函数 M 文件执行完毕时,这些变量被消除;3) 、脚本 M 文件可以直接运行,在 MATLAB 命令窗口中输入命令文件的名字,就会顺序执行命令文件中的命令,而函数 M 文件不能直接运行,而要用函数调用的方式运行。2分别编写脚本文件,实现以下要求:1) 求100,999之间能被 21 整除的个数。2) 用 magic(6)产生一矩阵,用至少两种方法求解其所有元素的和。 (提示:1、for 循中 南 林 业 科 技 大 学6环;2、sum 函数)程序代码及结果:(). sum=0;for n=
13、100:999;if rem(n,21)=0;sum=sum+1;endendsumsum =43(). A=magic(6)sum=0;for n=1:36;sum=sum+A(n);endsumA =35 1 6 26 19 243 32 7 21 23 2531 9 2 22 27 208 28 33 17 10 1530 5 34 12 14 164 36 29 13 18 11sum =666A=magic(6)sum=6*(A(1,1)+A(1,2)+A(1,3)+A(1,4)+A(1,5)+A(1,6)A =35 1 6 26 19 243 32 7 21 23 2531 9 2
14、 22 27 208 28 33 17 10 1530 5 34 12 14 164 36 29 13 18 11sum =6663. 编写函数文件,实现从键盘输入一个 3 位整数,将它反向输出。如 639,输出为 936。并调用该函数,输入自己的学号后三位数,输出结果。程序代码及结果:中 南 林 业 科 技 大 学7function d=fad(f)a=fix(f/100);b=fix(f/10)-10*fix(f/100);c=rem(f,10);d=a+10*b+100*cy=input(input a number:);x=fad(y)input a number:292d =292x
15、 =2924. 定义一个函数文件,求 ,要求在函数文件中包含能够通过 help 查询到的说明,说nim1明里面必须有自己的名字学号。然后调用该函数文件求 的值。105021kk程序代码及结果:function count=asd(n,m)% 姓名:李衍丹% 学号 :20111292count=0;for i=1:ncount=count+im;end count=asd(100,1)+asd(50,2)+asd(10,-1)count =4.7978e+0045.已知 ,当 x 取-3.0,-2.9 ,-2.8,2.8,2.9,3.0 时,)7.1cos(2lnixy1) 、求各点的函数值;2
16、) 、求这些数据的平均值;程序代码及结果:(1).function a=diwuti(n,m)for x=(n:0.1:m)a=sin(x+1.7)*log(pi+x)/2)/(1+cos(x+1.7)end a y=diwuti(-3,3)a = 2.0130a =1.4460中 南 林 业 科 技 大 学8a =1.0835a =0.8252a =0.6311a =0.4807a =0.3621 a =0.2678 a =0.1924a =0.1322a =0.0847 a =0.0478a =0.0200a =0a =-0.0130a =-0.0198a =-0.0209a =-0.01
17、67a =-0.0076a = 0.0064a =0.0250a =0.0482a =0.0762a =0.1090a =0.1469a =0.1904 a =0.2398a =0.2958a =0.3594a =0.4317a =0.5141a =0.6086a =0.7178a =0.8453 a =0.9962a =1.1774a =1.3996a =1.6789a =2.0418a =2.5340a =3.2431a =4.3588a =6.3853a =11.2510a =39.4306中 南 林 业 科 技 大 学9a =-28.8207a =-10.8760a =-6.8045a
18、 =-4.9934a =-3.9630a =-3.2935a =-2.8202a =-2.4653a =-2.1871a =-1.9614a =-1.7731a =-1.6124a =-1.4725a =-1.3487a =-1.2373a =-1.1359a =-1.1359y =-1.1359(2).function a=diwuti(n,m)a=0;for x=(n:0.1:m)a=sin(x+1.7)*log(pi+x)/2)/(1+cos(x+1.7)+a;a=10*a/(m-n);end a y=diwuti(-3,3)a =1.2269e+014y =1.2269e+0146.
19、求分段函数的值。 226035521xxyx, 且, 且 及, 其 它用 if 语句实现,分别输出 x=-5.0,-3.0,1.0,2.0,2.5 时的值。程序代码及结果:x=input(input x:);if x=0p=sum(1./i./i);p=sqrt(6*p); y=dibati(100)y =3.1321 y=dibati(1000)y =3.1406 y=dibati(10000)y =3.14159. 已知 n=1 时,f 1=1;n=2 时,f 2=0;n=3 时,f 3=1;n3 时,f n=fn-1 -2fn-2+ fn3;求 f1 f100 中,最大值、最小值以及各数
20、之和。程序代码及结果:f(1)=1;f(2)=0;f(3)=1;for n=4:100中 南 林 业 科 技 大 学13f(n)=f(n-1)-2*f(n-2)+f(n-3);endMAX=max(f)MIN=min(f)SUM=sum(f) MAX =4.3776e+011MIN =-8.9941e+011SUM =-7.4275e+01110. 某公司员工的工资计算方法如下:1)工作时数超过 120 小时者,超过部分加发 15%;2)工作时数低于 60 小时者,扣发 700 元;3)其余按每小时 84 元计发。试编程按输入的工号和该号员工的工时数,计算应发工资。程序代码及结果:hours=
21、input();s=90; %90if hours120salary=120*s+(hours-120)*s*(1+0.15);else salary=84*hours; endsalary请输入工作时数:100salary =8400请输入工作时数:130salary =11835请输入工作时数:40salary =2900第三次上机作业1、运行课本第四章及课堂上讲过的例子.(1)、x=0:0.1:1;y=2.3,4.3,2.5,6,4.9,1.5,1,4.6,5,6.7,0;plot(x,y)中 南 林 业 科 技 大 学14(2) 、t=linspace(0,2*pi,100);x=t;
22、t;y=sin(t);cos(t);plot(x,y)中 南 林 业 科 技 大 学15(3) 、x=0:0.1:3*pi;y1=sin(x);y2=cos(x);plot(x,y1,-g,x,y2,:bo);patch(x,y1,r)中 南 林 业 科 技 大 学162、设 区间取 101 点,绘制函数的曲线。23sin0.5co,021xy在程序代码及结果:x=0:2*pi/101:2*pi;y=(0.5+3.*sin(x)/(1+x.*x).*cos(x);plot(x,y)中 南 林 业 科 技 大 学173、已知 ,完成下列操作:21,cos(),31*2yxxy(1) 在同一坐标系
23、下用不同的颜色和线型绘制三条曲线。(2) 在不同的窗口用不同的颜色和线型绘制三条曲线。(3) 以子图形式用不同的颜色和线型制三条曲线。(4) 为(3)所有子图添加标题、坐标轴说明及适当的文本标注。程序代码及结果:(1)、x=0:pi/100:2*pi;y1=x.*x;y2=cos(2.*x);y3=y1.*y2;plot(x,y1,g-,x,y2,b-.,x,y3,r:)中 南 林 业 科 技 大 学18(2)、x=0:pi/100:2*pi;y1=x.*x;y2=cos(2.*x);y3=y1.*y2;figure(1)plot(x,y1,g-)figure(2)plot(x,y2,b-.)
24、figure(3)plot(x,y3,r:)中 南 林 业 科 技 大 学19中 南 林 业 科 技 大 学20(3)、x=0:pi/100:2*pi;y1=x.*x;y2=cos(2.*x);y3=y1.*y2;subplot(2,2,1)plot(x,y1,g-)subplot(2,2,2)plot(x,y2,b-.)subplot(2,2,3)plot(x,y3,r:) 中 南 林 业 科 技 大 学21(4)、x=0:pi/100:2*pi;y1=x.*x;y2=cos(2.*x);y3=y1.*y2;subplot(2,2,1)plot(x,y1,g-)title(y1=x2 );x
25、label(Variable X);ylabel(Variable Y);text(2,30,y1=x2)subplot(2,2,2)plot(x,y2,b-.)title(y2=cos(2*x) );xlabel(Variable X);ylabel(Variable Y);text(1,0.5,y1=cos(2*x);subplot(2,2,3)plot(x,y3,r:)title(y3=y1*y2 );xlabel(Variable X);ylabel(Variable Y);中 南 林 业 科 技 大 学22text(2,20,y1=y1*y2)4. 编写函数绘制三维球面,允许用户指定
26、球面圆心位置及半径;并调用函数文件绘制圆心在(2,3,2.5)处,半径为2的三维球面。程序代码及结果:t=0:pi/40:2*pi;x,y,z=sphere;x=x+2;y=y+3;z=z+2.5;surf(2*x,2*y,2*z)中 南 林 业 科 技 大 学235 、使用子图,在一个图形窗口分图绘制函数(-5x,y5)42)cos(eyxz的三维网格图和曲面图,要求:1) 第一个子图直接用 mesh 函数绘图,不加任何修饰;2) 第二个子图直接用 surf 函数绘图,去掉网格线;3) 第三个子图在第二个子图的基础上使用颜色插值,平滑表面;4) 为所有子图添加标题、坐标轴说明及适当的文本标注
27、。程序代码及结果:x,y=meshgrid(-5:0.5:5);z=cos(x).*cos(y).*exp(sqrt(x.*x+y.*y)/4);subplot(2,2,1);mesh(x,y,z);xlabel(X-axis),ylabel(Y-label),zlabel(Z-label);title(1);text(1,2,3,1);subplot(2,2,2)surf(x,y,z);shading interp;xlabel(X-axis),ylabel(Y-label),zlabel(Z-label);title(2);text(1,2,3,2);中 南 林 业 科 技 大 学24subplot(2,2,3)surf(x,y,z);shading flat;xlabel(X-axis),ylabel(Y-label),zlabel(Z-label);title(3);text(1,2,3,3);