Matlab上机实习报告
学院 电子信息学院
班级 电气092
学号 200900474233
姓名 魏欣欣
指导老师:廖亮
2010年12月20日
上周我们进行了本学期第二个实习部分-Matlab上机实习。本次实习一星期,共做了三个部分。分别是:
Matlab基本操作;
数值数组及其运算;
Matlab图形绘制基础。
下面分别介绍个部分实习内容。
实习内容一 Matlab基本操作
1,实习目的:
·掌握Matlab的启动和退出;
·熟悉Matlab的命令窗口;
·熟悉其他常用窗口和工具栏;
2,对本软件有了初步认识后,接下来就开始指导书要求做一些训练了
在指令窗中输入下面一段程序,功能是::画出衰减振荡曲线y=(e-t/3)sin3t及其他的包络线y0=(e-t/3)。T的取值范围是[0,4 EMBED Equation.3 \* MERGEFORMAT ]。
t=0:pi/50:4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,’-r’,t,y0,’:b’,t,-y0,’:b’)
观察输出结果
3,通过下拉菜单File:Preferences改变设置指令窗中的字体、颜色等。如:
数据显示格式的设置:
Format short 小数点后四位(缺省情况),如显示p为3.1416。
Format long 小数点后十四位,如显示p为3.14159265358979。
Formant bank 小数点后两位,如显示p为3.14。
Format short e 小数点后四位科学记数法,如显示p为3.1416e+000。
Format long e 小数点后十四五位科学记数法,如显示p为3.141592653589793e+000。
在指令窗中键入y1=2*sin(0.3*pi)/(1+sqrt(5))
然后利用回调指令计算y2=2*y1*cos(0.3*pi)/(1+sqrt(5))
y1 =
0.5000
y2 =
0.1816
4,了解软件中的一些功能和命令。
包括熟悉历史指令窗(Command History) 、熟悉当前目录浏览器(Current Diretory)、熟悉工作空间浏览器(Workspace Browser),以及一些指令如:
clear 清除当前工作区中的所有变量
clc 清除指令窗中内容(未清除当前工作区中的变量)
clf 清除图形窗口
cd 设置当前工作目录
exit,quit 退出Matlab
实习内容二 数值数组及其运算
实习目的
·掌握一维数组的创建和寻访;
·掌握二维数组的创建和寻访;
·掌握的Matlab矩阵和数组的运算;
·熟悉Matlab关系操作和逻辑操作;
实习内容和步骤
常量与变量
变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。
数值型向量(矩阵)的输入
任何矩阵(向量),可以直接按行方式输入每个元素;同一行中的元素用逗号或者空格符来分隔 行行之间用分号分隔。所有元素处于[ ]中
符号向量(矩阵)的输入
用函数sym定义符号矩阵:
函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任意的符号和表达式,没有长度限制,只需将方括号置于单引号中。
用函数sym定义符号矩阵
先定义矩阵中的每一个元素为一个符号变量,然后像普通矩阵一样输入符号矩阵。
矩阵的运算
运算符:+(加)、-(减)、*(乘)、./(右除)、.\(左除) 、^(乘方) 、’(转置)等;
常用函数:det(行列式) 、inv(逆矩阵) 、rank(秩) 、eig(特征值,特征向量) 、rref(化矩阵为行最简形)
如:A=[2 0 -1; 1 3 2];
B=[1 7 -1;4 2 3;2 0 1];
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
M =
0 14 -3
17 13 10
det_B =20
rank_A = 2
inv_B =
0.1000 -0.3500 1.1500
0.1000 0.1500 -0.3500
-0.2000 0.7000 -1.3000
V =
-0.7094 0.7444 0.7444
-0.6675 -0.3599 + 0.0218i -0.3599 - 0.0218i
-0.2263 -0.5587 - 0.0607i -0.5587 + 0.0607i
D =
7.2680 0 0
0 -1.6340 + 0.2861i 0
0 0 -1.6340 - 0.2861i
X =
0.4000 -1.4000 3.6000
0.0000 1.5000 -2.5000
(5) 要在闭区间[0,2]上产生50个等距采样的一维数组,试用两种不同的指令实现,要寻访1到5个元素如何实现;寻访7到最后一个元素如何实现;要寻访2,6,8个元素如何实现;寻访大于2的元素如何实现。
A=[0:pi/25:pi*2]
B=[A(1) A(2) A(3) A(4) A(5)]
C=[A(7):pi/25:A(51)]
A(find(A>2))
A =
0 0.1257 0.2513 0.3770 0.5027
0.6283 0.7540 0.8796 1.0053 1.1310
1.2566 1.3823 1.5080 1.6336 1.7593
1.8850 2.0106 2.1363 2.2619 2.3876
2.5133 2.6389 2.7646 2.8903 3.0159
3.1416 3.2673 3.3929 3.5186 3.6442
3.7699 3.8956 4.0212 4.1469 4.2726
4.3982 4.5239 4.6496 4.7752 4.9009
5.0265 5.1522 5.2779 5.4035 5.5292
5.6549 5.7805 5.9062 6.0319 6.1575
6.2832
B =
0 0.1257 0.2513 0.3770 0.5027
C =
0.7540 0.8796 1.0053 1.1310 1.2566
1.3823 1.5080 1.6336 1.7593 1.8850
2.0106 2.1363 2.2619 2.3876 2.5133
2.6389 2.7646 2.8903 3.0159 3.1416
3.2673 3.3929 3.5186 3.6442 3.7699
3.8956 4.0212 4.1469 4.2726 4.3982
4.5239 4.6496 4.7752 4.9009 5.0265
5.1522 5.2779 5.4035 5.5292 5.6549
5.7805 5.9062 6.0319 6.1575 6.2832
ans =
2.0106 2.1363 2.2619 2.3876 2.5133
2.6389 2.7646 2.8903 3.0159 3.1416
3.2673 3.3929 3.5186 3.6442 3.7699
3.8956 4.0212 4.1469 4.2726 4.3982
4.5239 4.6496 4.7752 4.9009 5.0265
5.1522 5.2779 5.4035 5.5292 5.6549
5.7805 5.9062 6.0319 6.1575 6.2832
(6)在指令窗中输入
x=[2 3 pi/2 9] ;x=[2,3,pi/2,9] 观察结果是否一样?
x=[2 3 pi/2 9]
y=[2,3,pi/2,9]
x =
2.0000 3.0000 1.5708 9.0000
y =
2.0000 3.0000 1.5708 9.0000
(7)在指令窗中输入A=[1 2 3;4 5 6] 观察结果;分别用“全下标”和“单下标”来寻访第2行第1列的元素,并说明二维数组元素的存储顺序。
>> a=[1 2 3;4 5 6]
a =
1 2 3
4 5 6
>> a(2,1)
ans =
4
>> a(2)
ans =
4
(8)在指令窗中输入B=【1,2,3;6,7,8】,并计算A.*B;和A*B并说明矩阵相乘和数组相乘的区别。
a=[1 2 3;4 5 6];b=[1 2 3;6 7 8];
m=a.*b
n=a*b
m=
1 4 9
24 35 48
n =
14 44
32 107
(9)在区间[0,10]中,绘出 EMBED Equation.KSEE3 \* MERGEFORMAT 的曲线。
t=0:1/20:10;
y=1-exp(-0.5*t).*cos(2*t);
plot(y)
(10)字符串数组
clear
a=2;
w=3;
t=0:0.01:10;
y=exp(-a*t).*sin(w*t);
[y_max,i_max]=max(y);
t_text=['t=',num2str(t(i_max))];
y_text=['y=',num2str(y_max)];
max_text=char('maximum',t_text,y_text);
tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)'];
plot(t,zeros(size(t)),'k')
hold on
plot(t,y,'b'