matlab上机实验报告.docx
《matlab上机实验报告.docx》由会员分享,可在线阅读,更多相关《matlab上机实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
matlab上机实验报告
实验1 MATLAB初步
1.举例说明format命令的功能;
Format命令用来调整数据的显示格式。
>>formatlong%15位定点表示,若改成short则为5位定点表示
>>2^
ans=
2.说明clc,clf和clear命令的区别;
clc即clearcommand(清屏)
clear清理内存所有变量
clf即clearfigure(清理图形窗口
3.举例说明help命令的功能;
在help命令后加入所要查询的函数或类名,将会返回所查询的对象的使用说明。
例如:
>>helpcos
COSCosine.
COS(X)isthecosineoftheelementsofX.
Seealsoacos,cosd.
Overloadedfunctionsormethods(oneswiththesamenameinotherdirectories)
helpsym/
ReferencepageinHelpbrowser
doccos
4.如何观察和调用历史命令;
在MTALAB界面的左下角有个CommandHistory窗口,里面可以看到历史命令,如果双击该条历史命令即可实现调用。
5.如何设置当前路径。
在MATLAB界面上方的工具栏有个CurrentFolder(当前目录),更改该目录就可以设置当前路径。
实验2 矩阵生成与元素标识
1.矩阵的创建
,
(尽可能用最简单方法);
创建矩阵A:
>>A=[1300;26130;3523;4923]
创建矩阵B:
>>B=[151015;20253035;40455055;60657075]
2.生成一个单位矩阵C,其结构与B相同;
>>eye(size(B))
3.找出矩阵A中所有大于8的元素位置(行号和列号);
>>[row,col]=find(A>8)
4.将矩阵B中大于35且小于65的元素值分别加9;
>>C=find(B>35&B<65)
>>B(C)=B(C)+9
5.提取矩阵B的主对角组元素。
>>diag(B)
实验3 MATLAB矩阵运算
(1)
1.矩阵的创建
,
;
创建矩阵A:
>>A=[1300;26130;3523;4923]
创建矩阵B:
>>B=[2-3995;2689;101176;-99-601]
2.矩阵A和矩阵B相乘运算;
>>A*B
3.求矩阵B的行列式、逆、秩、特征值和特征矢量(说明具体变量名);
行列式:
>>det(B)
逆:
>>inv(B)
秩:
>>rank(B)
特征根及特征向量:
>>[d,v]=eig(B)
d中对角线元素为特征值
v中列向量为对应的特征向量
4.将矩阵A和矩阵B纵向拼接,并将元素-99所在列乘以9;
>>A=[1300;26130;3523;4923]
>>B=[151015;20253035;40455055;60657075]
>>C=[A;B]
>>[row,col]=find(C(:
)==-99)
>>C(:
1)=C(:
col)*9
实验4 MATLAB矩阵运算
(2)
1.将矩阵A和矩阵B横向拼接,并提取合并后矩阵的主对角元素。
>>C=[AB]
>>diag(C)
2.求下列矩阵的列均值、列和、列方差、所有元素的平均值,
,
。
A:
列均值:
>>mean(A,1)
列和:
>>sum(A,1)
列方差:
>>std(A,0,1)
所有元素的平均值:
>>mean(A(:
))
B:
列均值:
>>mean(B,1)
列和:
>>sum(B,1)
列方差:
>>std(B,0,1)
所有元素的平均值:
>>mean(B(:
))
3.已知5座城市的坐标分别为:
(,)、(0,)、(13..8,)、(,)、(,)。
用不同标记标出各城市,并用兰色虚线连接两两城市;然后根据城市间的两两距离,寻找距离最短的两座城市,并用红色点划线连接。
M文件:
clear;
clc;
d=[
0
];
plot(d(1,1),d(1,2),'*');
holdon;
plot(d(2,1),d(2,2),'+');
plot(d(3,1),d(3,2),'o');
plot(d(4,1),d(4,2),'s');
plot(d(5,1),d(5,2),'d');
flag=[];
dist=1000000;
fori=1:
4
forj=i+1:
5
x=[d(i,1)d(j,1)];
y=[d(i,2)d(j,2)];
plot(x,y,'--')
d1=sqrt((x
(1)-x
(2))^2+(y
(1)-y
(2))^2);
ifd1dist=d1;
flag=[ij];
end
end
end
plot(d(flag,1),d(flag,2),'');
实验5 MATLAB矩阵运算(3)
1.求下列矩阵的列均值、列和、列方差、所有元素的平均值,
,
。
A:
列均值:
>>mean(A,1)
列和:
>>sum(A,1)
列方差:
>>std(A,0,1)
所有元素的平均值:
>>mean(A(:
))
B:
列均值:
>>mean(B,1)
列和:
>>sum(B,1)
列方差:
>>std(B,0,1)
所有元素的平均值:
>>mean(B(:
))
5、已知5座城市的坐标分别为:
(,)、(0,)、(13..8,)、(,)、(,)。
用不同标记标出各城市,并用兰色虚线连接两两城市;然后根据城市间的两两距离,寻找距离最短的两座城市,并用红色点划线连接。
同上
实验6 MATLAB绘图
(1)
1.试绘制
,式中
;
>>x=-2*pi:
:
2*pi;
>>y1=x.^3;
>>subplot(311);
>>plot(x,y1);
>>y2=x.^2;
>>subplot(312);
>>plot(x,y2);
>>y3=sin(x);
>>subplot(313);
>>plot(x,y3);
2.试绘制
;
>>[x,y]=meshgrid(-2:
.2:
2,-2:
.2:
2);
>>z=1./sqrt((1-x).^2+y.^2);
>>mesh(x,y,z);
3.生成一个周期为2π,占空比为的方波;
>>t=0:
:
4*pi;
>>y=square(2*pi*t,30);
>>plot(t,y);
4.绘制y的杆状图
。
>>x=-10:
.1:
10;
>>y=exp.*x).*cos(x);
>>plot(x,y)
5、已知5座城市的坐标分别为:
(,)、(0,)、(13..8,)、(,)、(,),用不同标记标出各城市,并用兰色虚线连接两两城市。
同上….
实验7 MATLAB绘图
(2)
编写程序产生如下信号,并按要求绘制相应的曲线。
利用saveas命令把图形分别保存成.fig格式和.jpg格式的图像文件。
(1)信号形式y=sin(2x+pi/4),利用plot命令绘制该信号在0<=x<+2pi区间内,且采样间隔为pi/1000的曲线。
填加网格线,标题为“正弦信号曲线”,横坐标显示“x”,纵坐标显示“y”。
M文件如下:
clear;
clc;
x=0:
pi/1000:
2*pi;
y=sin(2.*x+pi/4);
plot(x,y);
title('正弦信号曲线');
grid;
xlabel('x');
ylabel('y');
saveas(gcf,'d:
');
saveas(gcf,'d:
');
(2)将上述信号左平移或右平移2得到两个新信号y2和y3,利用hold命令在同一图中显示三条曲线并通过线型和颜色加以区分。
M文件如下:
clear;
clc;
x=0:
pi/1000:
2*pi;
y=sin(2.*x+pi/4);
plot(x,y,'b:
o');
title('正弦信号曲线');
gridon;
holdon;
xlabel('x');
ylabel('y');
y2=sin(2.*x+pi/4+2);
plot(x,y2,'r:
x');
gridon;
holdon;
y3=sin(2.*x+pi/4-2);
plot(x,y3,'g:
+');
gridon;
holdon;
saveas(gcf,'d:
');
saveas(gcf,'d:
');
(3)利用subplot命令将上述三个信号利用子图来显示;利用figure命令将上述三个信号分别在不同的窗体中同时显示。
在
(2)的基础上添加内容如下:
1.利用subplot命令将上述三个信号利用子图来显示
subplot(221);plot(x,y);title('y');gridon;
subplot(222);plot(x,y2);title('y2');gridon;
subplot(223);plot(x,y3);title('y3');gridon;
2.利用figure命令将上述三个信号分别在不同的窗体中同时显示
clear;
clc;
x=0:
pi/1000:
2*pi;
y=sin(2.*x+pi/4);
figure
(1);
plot(x,y,'b:
o');
title('正弦信号曲线');
xlabel('x');
ylabel('y');
gridon;
saveas(gcf,'d:
');
saveas(gcf,'d:
');
y2=sin(2.*x+pi/4+2);
figure
(2);
plot(x,y2,'r:
x');
title('正弦信号曲线');
xlabel('x');
ylabel('y');
gridon;
saveas(gcf,'d:
');
saveas(gcf,'d:
');
y3=sin(2.*x+pi/4-2);
figure(3);
plot(x,y3,'g:
+');
title('正弦信号曲线');
xlabel('x');
ylabel('y');
gridon;
saveas(gcf,'d:
');
saveas(gcf,'d:
');
(4)z=0:
:
40;x=cos(z);y=sin(z),利用plot3命令绘制三维曲线并填加相应的坐标轴标注。
M文件如下:
clear;
clc;
z=0:
:
40;
x=cos(z);
y=sin(z);
plot3(z,x,y);
zlabel('z');
xlabel('cos(z)');
ylabel('sin(z)');
实验8 MATLAB序设计
(1)
1.分别用for和while循环语句编写程序,求出
;
(1)for循环:
clear;
clc;
s=0;
forn=1:
10
s=s+5^n;
end
s
(2)while循环:
clear;
clc;
s=0;
n=1;
whilen<=10
s=s+5^n;
n=n+1;
end
s
2.试不用循环语句,改用MATLAB的矩阵函数求解1题。
M文件如下:
clear;
clc;
A=5*ones(1,10);
B=[1:
10];
C=A.^B;
sum(C)
3.编写一个函数文件testfun:
对于任意整数,若大于0,则返回该数的余弦值,否则返回其绝对值。
并将实整数-66代入求此函数的运行结果。
欲知后事如何,且听下回分解!
!
!
4.输入x,y的值,并将它们的值互换后输出。
M文件如下:
%
clear;
clc;
x=input('x=');
y=input('y=');
disp([x,y]);
t=x;
x=y;
y=t;
disp([x,y]);
5.利用rand产生10个随机数,利用for循环对其进行排序(从大到小)。
实验9 MATLAB序设计
(2)
1.编写一个M函数文件计算下列级数的和:
x和n的值由input指令给出。
2.编制m文件,等待键盘输入,输入密码123,密码正确,显示输入密码正确,程序结束;否则提示,重新输入。
3.编制m文件,输入n(正整数),显示所有小于n的质数。
4.数组[1:
99]中素数(即质数)元素的和
5.从键盘输入若干个数,当输入0时结束输入,求这些数的平均值以及平方和。
实验10 MATLAB数据文件I/O
(1)
1.教材《MATLAB基础与实例进阶》页,思考与练习2操作题
(1)-
(2)
实验11 MATLAB数据文件I/O
(2)
1.教材《MATLAB基础与实例进阶》页,思考与练习2操作题(3)-(4)
实验12 高级图形用户界面设计
(1)
1.教材《MATLAB基础与实例进阶》页,思考与练习2操作题
(1)-
(2)
实验13 高级图形用户界面设计
(2)
1.教材《MATLAB基础与实例进阶》页,思考与练习2操作题(3)-(4)
实验14 高级图形用户界面设计(3)
1.教材《MATLAB基础与实例进阶》页,思考与练习2操作题(5)
实验15 Simulink仿真
(1)
1.建立一简单的模型,用信号发生器产生一个幅度为2、频率为3Hz的锯齿波,再叠加一个幅度为2、频率为1Hz的连续正弦波。
将叠加后的信号显示在示波器上。
要求:
绘制模型图,并标注各模块的主要参数设置
实验16 Simulink仿真
(2)
1.使用Simulink的积分模块求解二阶微分方程
。
要求:
绘制模型图,并标注各模块的主要参数设置,输出示波器模块就