MATLAB上机实习Word格式.docx
- 文档编号:18886485
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:21
- 大小:956.02KB
MATLAB上机实习Word格式.docx
《MATLAB上机实习Word格式.docx》由会员分享,可在线阅读,更多相关《MATLAB上机实习Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
y0=exp(-t/3);
%函数y0=e^(-t/)
y=exp(-t/3).*sin(3*t);
%函数y=exp(-t/3).*sin(3*t);
plot(t,y,'
-r'
t,y0,'
:
b'
t,-y0,'
)%简单的制图
设置了存放路径,在E盘里建立了自己名字的文件夹。
了解help的作用,输入了helpeye,阅读相关帮助信息。
●图1-1
第二章
这一章主要学习了矩阵和数组的运算;
矩阵的两种输入方法:
任何矩阵(向量),可以直接按行方式输入每个元素:
同一行中的元素用逗号(,)或者用空格符来分隔;
行与行之间用分号(;
)分隔。
所有元素处于一方括号([])内;
进行数组相关实习要求完成内容:
对例五进行修改:
●图2-1
由于文本格式不对所以需要重新输入;
>
A=[20–1;
132];
B=[17–1;
423;
201];
M=A*B%矩阵A与B按矩阵运算相乘
det_B=det(B)%矩阵A的行列式
rank_A=rank(A)%矩阵A的秩
inv_B=inv(B)%矩阵B的逆矩阵
[V,D]=eig(B)%矩阵B的特征值矩阵V与特征向量构成的矩阵D
X=A/B%A/B=A*B-1,即XB=A,求X
Y=B\A%B\A=B-1*A,即BY=A,求Y
第(7)题:
要求在闭区间[0,2*pi]上产生50个等距采样的一维数组t。
第一次我做的是有错误的,错在步距,要50个数,我输入了2*pi/50,结果输出了51个数;
所以第二次我输入了2*pi/49;
这次就对了;
●输入一个数组,包含50个数
●图2-2
先输入t=0:
pi/49:
2*pi;
句步为2*pi/49;
直到4*pi为止。
数组中的数据可有两个修改方法:
1.可在表格中直接修改。
2.可在commandwindow里修改——直接赋值。
例如:
A
(2)=100.
●快速查找1到4,四个字符
●图2-3
使用方法:
把t(1,4)赋值给t14;
t14=t(1,4)
●把第二个数改值100.
●图2-4
第8题:
分别用“全下标”和“单下标”来寻访第2行第1列的元素,并说明二维数组元素的存储顺序。
如何快速查找:
第二行第一列,方法一:
C=A(2,1);
方法二:
B=A
(2);
说明二维数组元素的存储顺序:
数列是按照内存条列项存储的。
按照老师所讲解,一个2*3数组第一位存第一行第一个,第二位是第二行第一个;
第三位存第一行第二个;
第四位存第二行第二个;
第五位存第一行第三个,第六位存第二行第三个;
所以也就是说
A(1,1)=A
(1);
A(2,1)=A
(2);
A(1,2)=A(3);
A(2,2)=A(4);
A(1,3)=A(5);
A(2,3)=A(6);
●图2-5
第(9)题在指令窗中输入A=[1,2,3;
4,5,6];
B=[1,2,3;
6,7,8;
],并计算和A*B并说明矩阵相乘和数组相乘的区别。
计算A.*B;
这个是可以计算的因为这个A。
是调用了A矩阵的第一行;
●图2-6
这道题本身A*B是不能进行的,第一个的矩阵的列与第二个矩阵的行不对应;
但可以修改成这样A=[123;
456];
B=[123;
678;
C=A.*B;
●图2-7
A=[123;
B=[123;
C=A*B;
第(11)题在时间区间[1,10]中,绘出Y=1-EXP的线。
这道题要注意函数e的多少次方是用esp函数表示的
三角函数前要输一个点,用以表示点乘。
不然的话输出结果不正确。
●图2-8
第(12)题写出生成如图2-1所示波形的MATLAB脚本M文件。
图中虚线为正弦波,要求它的负半波被置零,且在顶点处被削顶。
x1=0:
0.05:
pi/4;
y1=sin(x1);
x2=pi/4:
3*pi/4;
y2=sin(pi/4);
x3=3*pi/4:
pi;
y3=sin(x3);
x4=pi:
y4=0;
x5=2*pi:
9*pi/4;
y5=sin(x5);
x6=9*pi/4:
11*pi/4;
y6=sin(pi/4);
x7=11*pi/4:
3*pi;
y7=sin(x7);
plot(x1,y1,'
r'
x2,y2,'
x3,y3,'
x4,y4,'
x5,y5,'
x6,y6,'
x7,y7,'
);
一开始的时候我并做不成,我把每一个人函数输一个plot,然而它们并连不到一块;
最终失败,后来我才看到了函数如何连续输出;
这个图是老师先让我连两个函数试试,所输出的结果。
●图2-9
●图2-10
这个图是我输入自己对的程序时所得到的输入结果;
●图2-11
图2-11是输入我所写的语句所出的结果,有些不完美的地方,但基本达到要求。
●图2-12
做这道题也有失误的时候;
图2-12就是其中一例,对于区间的函数值写错了导致图像段有错位。
●图2-13
最后学习了老师所作步骤十分的简洁图2-13所示;
0.1:
10;
y=sin(t);
a=sin(pi/3);
z=(y>
=a).*a+(y<
a).*z;
plot(t,y,’b’);
holdon;
plot(t,z,’-r’);
第(13)题字符串数组
A、创建串数组
a=‘Thisisanexample.’
B.size(a):
输出该数组的大小
C、串数组的元素标识
a14=a(1:
4)即a14=This
●图2-14
第三章
这一章我们主要学习了函数图形如何绘制,如何改变线条粗细,颜色,如何标坐标,显示坐标轴,显示特定点,如何打上整个图的标题;
课后第五题A:
绘制曲线sa(t)=sin(x)/x,其中
(注意:
x=0处需要特别处理)
●图3-1
X=-2*pi:
pi/10:
%建立一个矩阵,从-2*pi到2*pi
X=x+(x==0)*esp;
%x等零时,x为无穷小
S=sin(x)./x;
%函数
Plot(x,s)%画出函数
在做的过程中也有出现错误,主要的原因是x等零时,x为无穷小没有表示出来,导致再0点无图像。
之后学习了这个语句就好了
第五题B:
B、画出的曲线(t的取值范围是0到2),在x轴上标上0.5,1.2和4.5三个刻度。
在y轴上标0.2,1.0,3.5三个刻度。
用xlabel在横轴下标上t;
用ylabel在y轴左侧标y在图上用“小红圈”标出第一次使y=0.6的那点位置,并要求在该点旁边用12号字,斜体标出其横坐标。
在刚开始的时候出现了错误。
●图3-2
我所输入的语句如下:
clf;
%清除图画区
0.0001:
%建立矩阵
y=exp(-0.5*t).*cos(t);
%建立函数
b-'
'
linewidth'
3);
%画出函数,并规定蓝色线宽
exp(-0.5*t).*cos(t)==0.6;
plot(t,0.6,'
ro'
markersize'
4);
holdoff;
set(gca,'
xtick'
[0.5,1.2,4.5],'
ytick'
[0.2,0.5,1.0]);
cell_string='
\fontsize{12}\fontname{隶书}y=0.6'
;
text(t,0.6,cell_string{1});
xlabel('
\fontsize{14}\bft\rightarrow'
%标t轴
ylabel('
\fontsize{14}\bfy\rightarrow'
%标y轴
这样写的错误在于把t的位置赋值给了y,导致y实为一个矩阵,所以画出来的图像也是一个线而不是一个点或是圈;
然后我通过第四题进行学习
(4)绘图指令的使用及精细指令的使用
t=6*pi*(0:
100)/100;
y=1-exp(-0.3*t).*cos(0.7*t);
tt=t(find(abs(y-1)>
0.05));
ts=max(tt);
r-'
3)
axis([-inf,6*pi,0.6,inf])
[2*pi,4*pi,6*pi],'
[0.95,1,1.05,max(y)])
gridon
title('
\ity=1-e^{-\alphat}cos{\omegat}'
)
text(13.5,1.2,'
\fontsize{12}{\alpha}=0.3'
text(13.5,1.1,'
\fontsize{12}{\omega}=0.7'
plot(ts,0.95,'
bo'
10);
holdoff%huaquan
cell_string{1}='
\fontsize{12}\uparrow'
cell_string{2}='
\fontsize{16}\fontname{隶书}镇定时间'
cell_string{3}='
\fontsize{6}'
cell_string{4}=['
\fontsize{14}\rmt_{s}='
num2str(ts)];
text(ts,0.85,cell_string)
我一条一条观察了指令窗及图形窗中的结果。
最后掌握了句子结构的用法。
●图3-3
第四章
学习了几个例题对句柄有了一定了解;
在command窗口键入以下指令:
X=linspace(-pi,pi,25);
Y=sin(X);
plot(X,Y,'
rX'
gcf
gca
●图4-1
第五章
程序1:
首先建立M文件.
clear;
%清除工作空间中的变量
f=input('
InputFahrenheittemperature:
'
c=5*(f-32)/9
然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为:
73
c=
22.7778
程序2:
首先建立M文件。
functionc=f2c(f)
然后在MATLAB的命令窗口调用该函数文件。
y=input('
x=f2c(y)
输出情况为:
70
21.1111
x=
了解了MAYLAB语句与C语言有很多的项次这处。
其顺序也有顺序结构,单分支if语句,switch语句。
但就是多了一个try语句,
try语句
语句格式为:
try
语句组1
catch
语句组2
end
try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。
例矩阵乘法运算要求两矩阵的维数相容,否则会出错。
先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。
A=[1,2,3;
4,5,6];
B=[7,8,9;
10,11,12];
C=A*B;
C
lasterr%显示出错原因
A矩阵与B矩阵本来是不能相乘的,因为A的行与B的列不相等,输入try语句,这样就可以输出C=A.*B;
的值。
并输出
是如何错的
●图5-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 上机 实习
![提示](https://static.bdocx.com/images/bang_tan.gif)