MATLAB基本操作及例题(2014.5 兰交大萌芽)
在MATLAB中,常见操作就是命令窗口(The Command Window)和Simulink 仿真窗口。
对应上面两种的文件格式分别为-m文件和-mdl文件。
1.MATLAB基本操作
安装MATLAB,打开可看到主页面。
可以在desktop中调整窗口。
点击可以选
择窗口
我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-
文件。
在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-
文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并
且可以在这个窗口中编辑这个m-文件。
点击新建
-m文件
或点击已有
的-m文件
出现以下窗口
双击打开
编辑-m文件,(这样可以整体运行,若有错误,方便检测;完成后存储比较方便)1.打开-m文件编辑窗口,
2.开始编程。
(当然,必须掌握MATLAB语言,若不懂,英语好的人可以在help 查看例子)完成后,
3.得到结果
点击运
行
或点击debug
中的run
7.若有错误,系统会有说明。
(和C 语言一样,是语法错误,不出功能错误)
然后了,我们可以返回,纠错后再运行
网络是学习的另一种途径,上网查找资料并学习者必将成为有用的人,也希望在网络留下你的贡献。
同时向大家推荐 薛定宇老前辈的《控制系统仿真与计算机辅助设计(CAD )》
2.基本例题解法简介
和C 语言一样滴,大多数题解法有几种,不唯一。
以下我就简介几个简单算法。
1 用MATLAB 可以识别的格式输入下面两个矩阵
123323571
35732391
894A ⎡⎤
⎢⎥⎢⎥
⎢⎥=⎢⎥
⎢⎥⎢⎥⎣⎦
14
4
36782335542267534218
9543i i B i +⎡⎤⎢⎥+⎢
⎥=⎢⎥+⎢
⎥
⎣⎦
再求出它们的乘积矩阵C ,并将C 矩阵的右下角2×3子矩阵赋给D 矩阵。
赋值完成后,调用相应的命令查看MATLAB 工作空间的占用情况。
解:命令 A=[1 2 3 3;2 3 5 7;1 3 5 7;3 2 3 9;1 8 9 4]; B=[1+4i 4 3 6 7 8;2 3 3 5 5 4+2i;2 6+7i 5 3 4 2;1 8 9 5 4
3]; C=A*B
D=C([4 5],[4 5 6]) %×Ó³ÌÐò¸³Öµ
whos %²é¿´MATLAB¹¤×÷¿Õ¼äµÄÕ¼ÓÃÇé¿ö 绿色是注释,这里由于格式不兼容,无法识别。
结果 C =
1.0e+002 *
Columns 1 through 5 0.1400 + 0.0400i 0.5200 + 0.2100i 0.5100 0.4000 0.4100
0.2500 + 0.0800i 1.0300 + 0.3500i 1.0300 0.7700 0.7700
0.2400 + 0.0400i 0.9900 + 0.3500i 1.0000 0.7100 0.7000
0.2200 + 0.1200i 1.0800 + 0.2100i 1.1100 0.8200 0.7900
0.3900 + 0.0400i 1.1400 + 0.6300i 1.0800 0.9300
0.9900 Column 6
0.3100 + 0.0400i 0.5900 + 0.0600i 0.5100 + 0.0600i 0.6500 + 0.0400i 0.7000 + 0.1600i
D =
82.0000 79.0000 65.0000 + 4.0000i 93.0000 99.0000 70.0000 +16.0000i
Name Size Bytes Class Attributes A 5x4 160 double B 4x6 384 double complex C 5x6 480 double complex D 2x3 96 double complex 2 用MATLAB 语言实现下面的分段函数
,()/,,
h x D y f x h Dx x D h x D ⎧>⎪
==≤⎨⎪
-<-⎩
解:(1)命令h=10;D=2; x=-6:0.1:6;
leng=length(x); for m=1:leng if x(m)>D y(m)=h;
elseif x(m)>=-D y(m)=h/D*x(m); else
y(m)=-h; end end
plot(x,y) 结果
(2)命令x=[-6:0.1:6];
y=10*(x>2)+10/2*x.*((x<=2)&(x>=-2))-10*(x<-2);
plot(x,y)
结果
3 分别用for和while循环结构编写程序,求出
63
2362630
2122222i i K ===++++
++∑
并考虑一种避免循环的简洁方法来进行求和。
解:(1)K=0;
for i=0:63
K=K+2^i; end
k=sum(0:63)
结果 k =
2016
(2)K=0;i=0;
while i<=63 i=i+1; K=K+2^i; end ;
K=sum(0:63) 结果 k =
2016
4 选择合适的步距绘制出下面的图形 (1)1sin(/)t ,其中11(,)t ∈-
(2)sin(tan )tan(sin )t t -,其中(,)t ππ∈- 解:(1)ezplot('sin(1/x)',[-1 1]) 结果
(2)ezplot('sin(tan(t))-tan(sin(t))',[-pi pi]) 结果
5 对下面给出的各个矩阵求取各种参数,如矩阵的行列式、秩、特征多项式、范数等。
75350083341009103150037193......A ⎡⎤⎢⎥⎢⎥=⎢⎥-⎢⎥⎣⎦,5765710876810957910B ⎡⎤
⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦ 12345678910111213141516C ⎡⎤⎢⎥⎢
⎥=⎢⎥⎢⎥⎣⎦,33245518118575131D --⎡⎤⎢⎥
-⎢⎥=⎢⎥-⎢⎥---⎣⎦ 解:这里只求A 矩阵的
A=[7.5 3.5 0 0;8 33 4.1 0;0 9 103 -1.5;0 0 3.7 -19.3]; det(A) rank(A) norm(A) poly(A) 结果 ans = -4.2978e+005
ans = 4
ans =
103.7433
ans
1.0e+005 *
0.0000 -0.0012 0.0159 0.6148 -4.2978
6 求解下面的线性代数方程,并验证得出的解真正满足原方程。
(a)72124915327221151132130X -⎡⎤⎡⎤⎢⎥⎢⎥-⎢
⎥⎢⎥=⎢⎥⎢⎥---⎢⎥⎢⎥⎣⎦⎣⎦,(b)1321390721264915321172211521X ⎡⎤⎡⎤⎢⎥⎢⎥
-⎢⎥⎢⎥=⎢⎥⎢⎥-⎢⎥⎢⎥----⎣⎦⎣⎦ 解:(a )A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13]; B=[4;7;-1;0]; X=A\B 结果 X =
0.4979 0.1445 0.0629 -0.0813
7 假设有一组实测数据
(2) 假设已知该数据可能满足的原型函数为2()cx y x ax bx e d -=++,试求出满足下面数据的最小二乘解a,b,c,d 的值。
!!!给大家这个题: 假设有一组实测数据
答案:
程序
x=0.1:0.1:1; y=[2.3201 2.6470 2.9707 3.2885 3.6008 3.9090 4.2147 4.5191 4.8232 5.1275]; p=polyfit(x,y,2) 结果:
p =
-0.1563 3.2828 1.9967
小结:polyfit 是最小二乘拟合的函数,本题说明用最小二乘拟合求得的二次函数为y=-0.1563*x^2+3.2828*x+1.9967
8 考虑著名的Van der Pol 方程
2100302(),(),()x x x x with x x μ+-+===,
选择状态变量,建立系统状态方程模型,利用MATLAB 编写程序求解。
!!!本题可以查看其他资料,应该是用-S 函数写的程序,关键词:MATLAB 编写程序求解Van der Pol 方程。
谢谢浏览!!!。