MATLAB基础学习笔记
基础命令
-
help xxx
在帮助文档里查找xxx命令的使用方式 -
lookfor xxx
查找有xxx的关键字的命令 -
clc
清屏 -
clear
清除变量 -
inf
表示正无穷,可以加上负号表示负无穷 -
exp(xxx)
表示数学中的e的xxx次方 -
pi
表示数学符号Π -
计算阶乘
factorial(5)
矩阵的使用
-
为创建一个矩阵,可以使用
A = [1 2 3 4]
的命令,即创建一个一行四列的矩阵。其中空格作用和逗号完全相同。 -
如果想创建多维矩阵,只需要在第一行输入结束后,在后面加上分号,再继续输入下一行:
B = [1,2,3,4;5,6,7,8]
,这样就创建了一个两行三列的矩阵。 -
可以使用冒号来更高级的创建矩阵,如上述矩阵B,可以使用如下命令:
B = [1,2,3,4;5:8]
,其表示从5数到8,步幅是默认的1。如果要改变步幅,如想表示从1到10内所有奇数,可以使用:1:2:10
,其结果就是1 3 5 7 9
-
如果对矩阵的某一行、某一列进行操作,要使用冒号来代替:
B(:,2) = B(:,2)-B(:,1)
,这一行命令表示的就是矩阵B的第二列的值为其第二列减去第一列。这也就是线性代数中的初等列变换。 -
调用某一个位置,可以使用
B(2,3)
,这表示矩阵B第二行第三列的数据。 -
命令
who
,会使程序将工作区的所有变量打印出来 -
命令
save xxx
,会保存工作区的所有变量至xxx文件 -
命令
load xxx
,会将xxx文件的所有变量加载到工作区 -
zeros(m,n)``ones(m,n)
表示返回一个m行n列的全0、1矩阵 -
a+b,a-b
:对矩阵a和b的对应元素直接相加减,要求矩阵大小相同。 -
a.*b,a./b
:对矩阵a和b的对应元素直接相乘除,要求矩阵大小相同。 -
a*b,a/b
:进行矩阵乘除运算
行列式的操作
C = magic(3)
,创建一个3阶秩亏幻方矩阵det(C)
求行列式的值;rank(C)
求行列式的秩;inv(C)
求行列式的逆。abs(C)
对C中的每个元素求绝对值- 转置:
b=[1,2,3,4]'
,加上一个单引号,就表示矩阵的转置 - 在使用
inv(C)
命令后,可能会出现很多小数,在实际应用中我们可以使用format rat
使其表示为分数形式。(再次使用format
可以重置默认) diag(C,0)
求主对角线,如果第二个参数变为1,就是表示出主对角线向右上走一行的一条线(-1是向左下)eig(C)
求C的特征值,rref(C)
转化为行最简型行列式,norm(C)
返回C的范数- 也有些数据在进行运算后,系统会以
*
的形式表示,这是由于计算机的计算有一定的误差,这是一个无限接近于0的数据。 linspace([x1,x2][n])
从x1到x2之间生成 n 个点。这些点的间距为(x2-x1)/(n-1)
,其实就是一个等差数列,有点像冒号运算符。logspace
则是等比数列A(:)
表示A按列拉直,变成向量形式
使用变量
- 创建符号变量:
syms x y
,这就创建了两个符号变量x、y,注意中间不能加逗号 subs(a+b, a, 4)
subs是替换函数,这样的意义其实是b+4
- 基本函数都可以从
help elfun
中查找 - 取极限:
limit(sin(x)/x,x,0,left)
这就是函数sin(x)/x
在x->-0
处的极限,最后一个参数可以不要,求的就是那个点处的极限。0有时候可以记得使用inf
表示无穷。 - 求导:
diff(F,x,dim)
即在F中对x进行求导,求导的次数是dim - 积分:
int(F,x)
这是F对x进行不定积分,若果要进行定积分,int(F,x,0,inf)
这是从下限是0上限是无穷的定积分 - 有时候积分会遇到不可积的情况,可以使用
quad('sin(x)./x',1,pi/2,1e-6)
这是通过数值来进行积分,意义是将单引号内的方程组进行数值积分,下限是1上限是pi/2,误差范围是10的-6次方 - 化简命令:
factor()
化为最简因式,simple()
化简 - 可以创建内联函数:
Fx = inline('sin(x)./x','x')
这是创建了一个内联函数,这样我们再进行数值积分,就可以直接使用quad(Fx,1,pi/2,1e-6)
- 泰勒展开:
taylor(sin(x),x,0.6)
将sin(x)在x=0处以六阶形式展开,注意后面的符号是.
- 最值点:
fminbnd('sin(x)',0,pi)
,这是求sin(x)中的最小值点,最大值也同理
函数编辑器的使用
-
创建脚本后,可以自定义函数:
function y=fnh(x) y=sin(x)./x
-
这样就是创建了一个自定义函数
-
调用时,如果是以数值方式调用,则前面记得加上@,如果直接调用,就可以直接写,如
fnh(pi/2)
和quad(@fnh,1,pi/2,1e-6)
-
绘图命令
绘制二维图形
-
最基础的绘图命令
plot
,其使用方法是:plot(x,y,'-r','Linewidth',2)
,其中x是横坐标,y是纵坐标,一般是用方程来表达(记得’’),-r
是颜色参数,'Linewidth',2
是线宽参数 -
如果在以绘制出的图上继续增加新元素,需要先使用
hold on
命令。 -
legend()
命令,为图像增加注解,里面的每个参数对应的是每次的plot
函数(按顺序) -
subplot(1,3,1)
命令表示下面的命令处于一行三列图表中的第一个位置
拟合
多项式拟合
-
polyfit(x,y,9)
拟合x,y以九个点表示,注意这里的阶数应小于数据点的数目 -
polyval(p,x)
p是拟合出的点,计算出每个x处的p% 多项式拟合指令 x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; P=polyfit(x,y,3); xi=0:.2:10; yi=polyval(P,xi); plot(xi,yi,x,y,'r*');
回归模型
-
[b,bint,r,rint,stats]=regress(Y,X,alpha)
bint表示回归系数的区间估计 r表示残差 rint表示置信区间 stats表示用于检验回归模型的统计量,有三个数值:决定系数r^2,F值,与F对应的概率p alpha表示显著性水平,缺省时为0.05
-
用法:
b=regress(Y,X)