MATLAB上机实验报告基础及实例进阶.docx
- 文档编号:26204428
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:42
- 大小:153.52KB
MATLAB上机实验报告基础及实例进阶.docx
《MATLAB上机实验报告基础及实例进阶.docx》由会员分享,可在线阅读,更多相关《MATLAB上机实验报告基础及实例进阶.docx(42页珍藏版)》请在冰豆网上搜索。
MATLAB上机实验报告基础及实例进阶
实验1 MATLAB初步
1.举例说明format命令的功能;
功能:
设置显示浮点格式
%n读取一个数字并转换为double
%d读取一个数据并转换为int32
%d8读取一个数据并转换为int8
%d16读取一个数据并转换为int16
%d32读取一个数据并转换为int32
%d64读取一个数据并转换为int64
%u读取一个数据并转换为uint32
%u8读取一个数据并转换为uint8
%u16读取一个数据并转换为uint16
%u32读取一个数据并转换为uint32
%u64读取一个数据并转换为uint64
%f4读取一个数字并转换为double
%f32读取一个数字并转换为float
%f64读取一个数字并转换为double
%s读取一个字符串
%q读取一个可以是双引号括着的字符串
%c读取一个字符,包括空格
%[…]
读取和括号中字符串相匹配的字符。
读取操作在首次遇到不匹配的字符和空格时停止。
例如%[mus]把summer读成summ
%[^…]
读取和括号中字符串不匹配的字符。
读取操作在首次遇到不匹配的字符和空格时停止。
例如%[^mus]把summer读成er
2.说明clc,clf和clear命令的区别;
clc:
清除所有输入和从命令窗口显示输出
clf:
删除从当前图的所有图形对象
clear:
从当前删除所有变量工作空间,释放系统内存。
3.举例说明help命令的功能;
列出所有主要帮助主题在命令窗口。
对应于每个主要帮助主题MATLAB搜索路径上一个文件夹的名字。
4.如何观察和调用历史命令;
通过命令历史窗口执行历史指令:
1)用鼠标左键双击一条指令,即可自动将其发送到命令窗口并立即执行;2)选中一条指令,单击鼠标右键并选择copy菜单,再在命令窗口单击paste按钮即可。
5.如何设置当前路径。
1)选中Matlab快捷启动的图标,鼠标右键菜单选择“属性”;
2)“起始位置”项目后面对应的路径就是启动之后的默认路径,修改成自己期望的路径,然后应用或确定。
实验2 矩阵生成与元素标识
1.矩阵的创建
,
(尽可能用最简单方法);
A=[1300;26130;3523;4923]
B=[151015;20253035;40455055;60657075]
2.生成一个单位矩阵C,其结构与B相同;
>>C=eye(size(B))
C=
1000
0100
0010
0001
3.找出矩阵A中所有大于8的元素位置(行号和列号);
>>[x,y]=find(A>8)
x=
2
4
y=
2
2
4.将矩阵B中大于35且小于65的元素值分别加9;
>>B(find(B>35&B<65))=B(find(B>35&B<65))+9
B=
151015
20253035
49545964
69657075
5.提取矩阵B的主对角组元素。
>>diag(B)
ans=
1
25
50
75
实验3 MATLAB矩阵运算
(1)
1.矩阵的创建
,
;
A=[1300;26130;3523;4923]
B=[2-3995;2689;101176;-99-601]
2.矩阵A和矩阵B相乘运算;
>>A*B
ans=
81512332
156393707577
-2612535175
-25146482116
3.求矩阵B的行列式、逆、秩、特征值和特征矢量(说明具体变量名);
行列式:
>>b=det(B)
b=
+05
逆:
>>b1=inv(B)
b1=
秩:
>>b2=rank(B)
b2=
4
特征矢量:
>>b3=eig(B)
b3=
+
4.将矩阵A和矩阵B纵向拼接,并将元素-99所在列乘以9;
>>C=vertcat(A,B)
C=
1300
26130
3523
4923
2-3995
2689
101176
-99-6011
>>[x,y]=find(C==-99)
x=
8
y=
1
>>C(:
y)=C(:
y)*9
C=
9300
186130
27523
36923
18-3995
18689
901176
-891-601
实验4 MATLAB矩阵运算
(2)
1.将矩阵A和矩阵B横向拼接,并提取合并后矩阵的主对角元素。
>>D=cat(2,A,B)
D=
13002-3995
261302689
3523101176
4923-99-601
>>diag(D)
ans=
1
61
2
3
2.求下列矩阵的列均值、列和、列方差、所有元素的平均值,
,
。
>>A=[123;654;9910001050]
>>B=[2-3995;2689;101176;-99-601]
列和:
>>sum(A)
ans=
10610071057
>>sum(B)
ans=
-85811421
均值:
>>mean(A)
ans=
>>mean(B)
ans=
列方差:
>>var(A)
ans=
+005*
>>var(B)
ans=
+003*
所有元素的平均值:
>>mean(mean(A))
ans=
>>mean(mean(B))
ans=
3.已知5座城市的坐标分别为:
(,)、(0,)、(13..8,)、(,)、(,)。
用不同标记标出各城市,并用兰色虚线连接两两城市;然后根据城市间的两两距离,寻找距离最短的两座城市,并用红色点划线连接。
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);
ifd1 dist=d1; flag=[ij]; end end end plot(d(flag,1),d(flag,2),''); 实验5 MATLAB矩阵运算(3) 1.求下列矩阵的列均值、列和、列方差、所有元素的平均值, , 。 5、已知5座城市的坐标分别为: (,)、(0,)、(13..8,)、(,)、(,)。 用不同标记标出各城市,并用兰色虚线连接两两城市;然后根据城市间的两两距离,寻找距离最短的两座城市,并用红色点划线连接。 实验6 MATLAB绘图 (1) 1.试绘制 ,式中 ; y=x^3: clear;clc; x=-2*pi: pi/180: 2*pi; plot(x.^3,'r'); gridon; y=x^2: clear;clc; x=-2*pi: pi/180: 2*pi; plot(x.^2,'g'); gridon; y=sin(x): clear;clc; x=-2*pi: pi/180: 2*pi; plot(sin(x),'b'); gridon; 2.试绘制 ; clear;clc; x=-5: : 5; y=x; z=1./(((1-x).^2+y.^2).^; plot(z); 3.生成一个周期为2π,占空比为的方波; clear;clc; t=0: pi/180: 10*pi; y=square(t,30); plot(t,y); grid ylim([]) 4.绘制y的杆状图 。 clear;clc; x=0: pi/10: 10*pi; y=exp.*x).*cos(x) plot(y); stem(x,y) 5、已知5座城市的坐标分别为: (,)、(0,)、(13..8,)、(,)、(,),用不同标记标出各城市,并用兰色虚线连接两两城市。 实验7 MATLAB绘图 (2) 编写程序产生如下信号,并按要求绘制相应的曲线。 利用save as命令把图形分别保存成.fig格式和.jpg格式的图像文件。 (1)信号形式y=sin(2x+pi/4),利用plot命令绘制该信号在0<=x<+2pi区间内,且采样间隔为pi/1000的曲线。 填加网格线,标题为“正弦信号曲线”,横坐标显示“x”,纵坐标显示“y”。 clc;clear; x=0: pi/1000: 2*pi; y=sin(2.*x+pi/4); plot(y); grid; title('正弦信号曲线'); xlabel('x'); ylabel('y'); saveas(gcf,''); saveas(gcf,''); (2)将上述信号左平移或右平移2得到两个新信号y2和y3,利用hold命令在同一图中显示三条曲线并通过线型和颜色加以区分。 clc;clear; x=0: pi/1000: 2*pi; y=sin(2.*x+pi/4); y2=sin(2.*x+pi/4+2); y3=sin(2.*x+pi/4-2); plot(y); holdon; plot(y2,'g'); plot(y3,'r'); grid; title('正弦信号曲线'); xlabel('x'); ylabel('y'); saveas(gcf,''); saveas(gcf,''); (3)利用subplot命令将上述三个信号利用子图来显示;利用figure命令将上述三个信号分别在不同的窗体中同时显示。 Subplot: clc;clear; x=0: pi/1000: 2*pi; y=sin(2.*x+pi/4); y2=sin(2.*x+pi/4+2); y3=sin(2.*x+pi/4-2); subplot(3,1,1); plot(y); holdon; subplot(3,1,2); plot(y2,'g'); subplot(3,1,3); plot(y3,'r'); grid; title(''); xlabel('x'); ylabel('y'); saveas(gcf,''); saveas(gcf,''); figure: clc;clear; x=0: pi/1000: 2*pi; y=sin(2.*x+pi/4); y2=sin(2.*x+pi/4+2); y3=sin(2.*x+pi/4-2); figure; plot(y); grid; holdon; figure; plot(y2,'g'); grid; figure; plot(y3,'r'); grid; title(''); xlabel('x'); ylabel('y'); saveas(gcf,''); saveas(gcf,''); (4)z = 0: : 40;x = cos(z);y = sin(z),利用plot3命令绘制三维曲线并填加相应的坐标轴标注。 clc;clear; z=0: : 40; x=cos(z); y=sin(z); plot3(x,y,z); xlabel('x'); ylabel('y'); zlabel('z'); saveas(gcf,''); saveas(gcf,''); 实验8 MATLAB序设计 (1) 1.分别用for和while循环语句编写程序,求出 ; for: clc;clear; s=0; forn=1: 10 s=s+5^n; end s s= clc;clear; s=0; n=1; whilen<=10 s=s+5^n; n=n+1; end s s= 2.试不用循环语句,改用MATLAB的矩阵函数求解1题。 clc;clear; n=1: 10; s=5.^n; sum(s) ans= 3.编写一个函数文件testfun: 对于任意整数,若大于0,则返回该数的余弦值,否则返回其绝对值。 并将实整数-66代入求此函数的运行结果。 functiontestfun(x) if(x>0) y=cos(x); else y=abs(x); end y >>testfun(-66) y= 66 4.输入x,y的值,并将它们的值互换后输出。 functionchange(x,y) a=x; x=y; y=a; x y >>x=2; >>y=1; >>change(x,y) x= 1 y= 2 5.利用rand产生10个随机数,利用for循环对其进行排序(从大到小)。 A=rand(1,10); temp=1; while(temp==1) temp=0; forn=1: 9;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 上机 实验 报告 基础 实例 进阶