MATLAB建模基础

实际上这篇文章的内容大多数都已经在我的matlab专栏里或多或少提及到了。这里只对之前没有提及(或者我忘记的)再记录一下。

常用矩阵

zeros(m,n)
创建全零数组,m行n列。zeros还有其他用法,参见帮助。
ones(n)
创建全为1的n×n矩阵。ones还有其他用法,参见帮助。
eye(n)
创建n×n的单位矩阵。eye的其他用法,参见帮助。

固定变量

名称
pi3.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函数:四舍五入为最近的小数或整数。

流程控制

[个人笔记]matlab教程01

绘图基础

[个人笔记]matlab教程09

建立函数文件

[个人笔记]matlab教程04

文件路径

dir函数:列出文件夹内容。

文本读取

对于matlab 而言文本中%后面的文字也视为注释,不会作为数据读取。
使用load函数进行读取(只能对全数值的文本进行读取)
在这里插入图片描述
工作区就加载了这个文件中的数据。
在这里插入图片描述
使用fopen函数来打开文件
这里注意一下打开的格式,如果格式不正确,会造成结果乱码在这里插入图片描述
在这里插入图片描述
fgetl函数获取一行文本(指针会下移),因此第二次执行命令会获取第二行。
当进行完文本操作后,记得使用 fclose 函数关闭文件
对excel数据读取
xlsread函数在这里插入图片描述
在这里插入图片描述

文本写入

fprintf函数,注意打开文件的方式,a是追加。
在这里插入图片描述
[个人笔记]matlab教程12
对excel数据写入
xlswrite函数
在这里插入图片描述
因为定义的写入数据范围比数据多,所以多的部分就被填充上了NaN,读入的时候也会这样。(excel需要关闭时执行,如果打开可能会提示被占用)
在这里插入图片描述

图像读入

使用imread函数读入,用image显示。
可爱吗,一拳能锤死你的那种
在这里插入图片描述
注释掉的两句是对图片再次裁剪显示。
在这里插入图片描述
VidoReader是视频读入函数。实际处理中是按帧处理,所以还是图片。此函数不会读取声音。

线性方程组求解

线性代数与matlab中方程组求解

线性非线性拟合

线性和多项式的拟合使用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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值