文章目录
一、matlab介绍
1.背景
在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。
2.下载
二、基本语法和操作命令
1.语法
(1)总结
语法 | 规则 |
---|---|
分隔指令 | 逗号和分号可作为指令间的分隔符,MATLAB允许多条语句在同一行出现 |
分号 | 分号如果出现在指令后,屏幕上将不显示结果 |
续行 | 使用”…”续行 |
注释 | %跟注释 |
数组索引 | (a:b)。下标不从0开始,从1开始 |
(2)续行
>> b=[1,2,3,...
4]
b =
1 2 3 4
(3)数组索引
索引
下标不从0开始,从1开始
>> a=[1 2 3;4 5 6;7 8 9]
a =
1 2 3
4 5 6
7 8 9
>> b=a(1:2,2:3) %1~2行,2~3列
b =
2 3
5 6
(:)将矩阵中所有元素变为一列
>>c=b(:)
c =
2
5
3
6
(4)变量
变量命名规则:
(1)始于字母,由字母、数字或下划线组成;
(2)区分大小写;
(3)可任意长,但使用前N个字符。N与硬件有关,由函数namelengthmax返回,一般N=63;
(4)不能使用关键字作为变量名(关键字在后面给出);
(5)避免使用函数名作为变量名。如果变量采用函数名,该函数失效。
变量空间:
(1)只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示或调用;
(2)变量名尽可能不要重复,否则会覆盖;
2.命令
与DOS命令一致。
cd — 可改变当前工作目录
cd _ — 显示当前子目录
cd_ … — 退出当前子目录到上一级目录
cd _\ — 回到根目录
cd c:\matlab\toolbox
m文件执行方式与DOS命令一致。
exam1.m文件执行exam1即可。
>>exam1
PS:cmd清屏是cls,matlab是clc
三、基本数学运算
1.解方程
求方程 3x4+7x3 +9x2-23=0的全部根
>>p=[3,7,9,0,-23]; %建立多项式系数向量
x=roots(p) %求根
x =
-1.8857 + 0.0000i
-0.7604 + 1.7916i
-0.7604 - 1.7916i
1.0732 + 0.0000i
2.求积分
>>quad('x.*log(1+x)',0,1)
ans =
0.2500
>>F = inline('1./(x.^3-2.*x-5)');
Q = quad(F,0,2)
Q =
-0.4605
四、线性代数基本操作
1.矩阵(数组)
MATLAB中,数组可通称为矩阵,即使是只有一个元素的数组变量或一个常量,MATLAB也看做是一个1*1的矩阵
(1)创建矩阵
直接输入法
规则:
(1)矩阵元素必须用[ ]括住;
(2)矩阵元素必须用逗号或空格分隔;
(3)在[ ]内矩阵的行与行之间必须用分号分隔。
(4)矩阵元素:矩阵元素可以是任何MATLAB表达式 ,可以是实数 ,也可以是复数,复数可用特殊函数i,j 输入
>>a=[1 2 3;4 5 6]
a =
1 2 3
4 5 6
>> b=[1,2,3;4,5,6]
b =
1 2 3
4 5 6
>>x=[2 pi/2;sqrt(3) 3+5i]
x =
2.0000 + 0.0000i 1.5708 + 0.0000i
1.7321 + 0.0000i 3.0000 + 5.0000i
空矩阵
>> a=[]
a =
[]
随机矩阵rand(d1,d2,…)
>> a=rand(2,3)
a =
0.2785 0.9575 0.1576
0.5469 0.9649 0.9706
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
(2)矩阵的基本运算
>> A*A'
ans =
101 71 53
71 83 71
53 71 101
>> A*A
ans =
91 67 67
67 91 67
67 67 91
2.线性方程组
(1)x=A\b
例:
3x1+x2- x3 = 3.6
x1+2x2+4x3 = 2.1
-x1+4x2+5x3 =-1.4
>>A=[3 1 -1;1 2 4;-1 4 5];
b=[3.6;2.1;-1.4];
>>x=A\b
x =
1.4818
-0.4606
0.3848
(2)x=inv(A)*b
>>A=[3 1 -1;1 2 4;-1 4 5];
b=[3.6;2.1;-1.4];
>>x=inv(A)*b
x =
1.4818
-0.4606
0.3848
五、绘图
1.sin()和cos()函数
(1)单个函数
>>x=[0:0.5:360]*pi/180;
plot(x,sin(x));
legend('sin')
(2)多个函数
>>x=[0:0.5:360]*pi/180;
plot(x,sin(x),x,cos(x));
legend('sin','con')
2.绘制复杂函数
>>[x,y]=meshgrid(-3:1/8:3);
z=3.*(1-x).^2.*exp(-(x.^2)./2-(y+1).^2)-10.*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)-1/3.*exp(-(x+1).^2-y.^2);
surf(x,y,z);
shading interp;
colorbar