实际上这篇文章的内容大多数都已经在我的matlab专栏里或多或少提及到了。这里只对之前没有提及(或者我忘记的)再记录一下。
常用矩阵
zeros(m,n)
创建全零数组,m行n列。zeros还有其他用法,参见帮助。
ones(n)
创建全为1的n×n矩阵。ones还有其他用法,参见帮助。
eye(n)
创建n×n的单位矩阵。eye的其他用法,参见帮助。
固定变量
名称 | 值 |
---|---|
pi | 3.1416 |
i(或j) | 0.00+1.00i |
Inf | 无穷大 1/0的结果就是Inf |
NaN | 不确定 (not a number)0/0的结果就是NaN |
矩阵运算和数组运算
矩阵的乘 * 与点乘 .*
- 是线性代数中的运算方法。
.* 是矩阵对应位置的值相乘。
^ 2 与.^2效果也同上。
矩阵的 / 与点除 ./
/ 是线性代数中的运算方法。
./ 是矩阵对应位置的值相除。
[个人笔记]matlab教程03
数组操作函数
flipud函数:对数组自上向下翻转(行)。
fliplr函数:对数组自左向右翻转(列)。
rot90函数:将数组逆时针旋转 90 度。
sum函数:对于矩阵。默认对列进行相加求和,如果想要进行行求和,需要写成sum(A,2)。就对A矩阵的第2维度(行)进行求和计算。
max函数,取最大如果写成max(A,2)就会与2比较,取出大于等于2的。如果构建了二维数组,它会对每一列中选取最大值。如果想进行行比较需要些max(A,[],2)。
min函数,取最小min(A,2)同理。
[个人笔记]matlab教程04
ciel函数:向正向四舍五入。
fix函数:向0四舍五入。
floor函数:向负无穷大四舍五入。
round函数:四舍五入为最近的小数或整数。
流程控制
绘图基础
建立函数文件
文件路径
dir函数:列出文件夹内容。
文本读取
对于matlab 而言文本中%后面的文字也视为注释,不会作为数据读取。
使用load函数进行读取(只能对全数值的文本进行读取)
工作区就加载了这个文件中的数据。
使用fopen函数来打开文件
这里注意一下打开的格式,如果格式不正确,会造成结果乱码
用fgetl函数获取一行文本(指针会下移),因此第二次执行命令会获取第二行。
当进行完文本操作后,记得使用 fclose 函数关闭文件
对excel数据读取
用xlsread函数
文本写入
fprintf函数,注意打开文件的方式,a是追加。
[个人笔记]matlab教程12
对excel数据写入
xlswrite函数
因为定义的写入数据范围比数据多,所以多的部分就被填充上了NaN,读入的时候也会这样。(excel需要关闭时执行,如果打开可能会提示被占用)
图像读入
使用imread函数读入,用image显示。
可爱吗,一拳能锤死你的那种
注释掉的两句是对图片再次裁剪显示。
VidoReader是视频读入函数。实际处理中是按帧处理,所以还是图片。此函数不会读取声音。
线性方程组求解
线性非线性拟合
线性和多项式的拟合使用polyfit函数使用fittype来指定拟合的方式
插值和线性回归
interp1函数:在曲线上插入点
regress多元线性回归
Y=b0+b1X1+b2X2+…+bkXk
[B,Bint,R,Rint,Stats]=regress(Y,X)
B是回归得到的自变量系数;Brint是B 的 95% 的置信区间矩阵。
微分方程
对于连续问题,就需要列写微分方程或偏微分方程。
求解微分方程使用ode23函数(ode45也可以,精度更高,ode45的使用参见帮助,这里列举ode23的使用)。
对于一阶微分方程求解
例如:在[0,2pi]上求解:
初值确认:
f=@(t,y)cos(t);
tspan=[0,2*pi];
y0=2;%初值
[t,y]=ode23(f,tspan,y0);
对于二阶微分方程求解
例如:在[0,20]区间求解
已知
先转化为一阶方程
这样就有两组方程了,因此f中需要写入两组
f=@(t,y)[y(2);-sin(y(1))+sin(5*t)]
f=@(t,y)[y(2);-sin(y(1))+sin(5*t)];
tspan=[0,20];
y0=[1;0];
[t,y]=ode23(f,tspan,y0);