一、M文件
1、M文件的创建、保存、打开和运行
M文件的后最是.m
1.1 M文件的创建
-
菜单方式
-
快捷键方式
-
命令方式:在命令窗口键入
edit 文件名
1.2 M文件的保存
-
菜单方式
-
快捷键方式
-
运行保存
-
另存文件
1.3 M文件的打开
-
菜单方式
-
快捷键方式
-
命令方式:在命令窗口键入
edit 文件名
1.4 M文件的运行
-
在edit环境下:单击“
run
” -
快捷键方式:在键盘上“
F5
” -
命令方式:在命令窗口键入文件名
2、主程序文件和函数程序文件
2.1 主程序文件
用户编制的程序
-
用
clear
、clear all
、close all
开头 -
注释行以%开头
-
程序主体,定义全局变量
2.2 函数文件
子程序文件,以函数的定义为第一行内容,以function
为开始。可以是系统自带的函数文件,当然也可以自己定义。
二、条件控制结构
1、if条件控制结构
1.1 单分支结构
1.2 双分支结构
1.3 多分支结构
2、switch-case条件控制
可使程序在不同条件状况下执行不同命令
三、循环控制结构
1、for-end循环
主要用于以固定取值或循环次数的重复执行过程
格式:for end
s1=0; for m=2:2:999 s1=s1+m; end s1
2、while-end循环结构
主要用于不容易确定循环次数的条件下使用
x=1; while x~=inf x1=x; x=x*2; end x1
四、其他常用语句
1、pause
时间暂停功能
-
pause
:暂停至按下鼠标左键或者键盘任意键后再执行 -
pause(时间)
:暂停到设定时间后再继续执行
t=0:pi/20:6*pi; y=2*sin(t)+3*sin(2*t); for n=1:100 y1=y+rand(size(y)); plot(t,y1); pause(0.03) end
2、input
从键盘键入数据
input(“提示文字”)
五、m文件的注释和调试
1、程序的注释
以“%”开头
2、程序的调试
Matlab的自动检查功能很强,如果程序有错误,则程序会停止,并将错误显示在命令窗口,而且提示错误所在的位置和错误的原因
六、数据分析函数库
1、基本数据分析
基本数据处理功能按列进行
函数 | 功能 |
---|---|
max() | 求各列最大值 |
min() | 求各列最小值 |
mean() | 求各列平均值 |
sum() | 求各列元素和 |
std() | 求各列标准差 |
标准差是指各列中N个元素与该列平均值之差的平方和再开方
2、用于随机数据分析的函数
-
rand(m,n)
:产生0~1之间均匀分布的m行,n列随机数矩阵 -
randn(m,n)
:产生正态分布的m行,n列随机数矩阵,均值0,标准差为1
3、用于相关分析的函数
-
corrcoef(x,y)
:计算两个向量x,y的相关系数 -
cov(x,y)
:计算x,y的协方差矩阵
七、多项式函数库
1、多项式的四则运算
1.1 多项式的表示
用各幂次前的系数表示,从高到低
a=[a(1),a(2),a(3)...a(n),a(n+1)]
注意
:零系数不能省去
1.2 多项式的运算
-
多项式相加:
a+b
注意:长度必须相同,在短的前面以0补齐
-
多项式相乘:
conv(a,b)
-
多项式相除:
[q,r]=deconv(a,b)
q:商式
r:余子式
注意:a是分子,b是分母。分母系数项的第一位不能是零
a=[2,4,6,8]; b=[3,6,9]; c=a+[0,b] d=conv(a,b) [q,r]=deconv(a,b) [q,r]=deconv(d,a)
2、多项式的求导、求根和求值
-
多项式求导:
polyder(a)
-
多项式求根:
roots(a)
-
由根求多项式:
poly(a)
-
多项式求值:
polyval(a,xv)
给多项式a中的自变量x赋予值xv
a=[2,4,6,8]; a1=polyder(a) a2=roots(a) a3=poly(a) a4=polyval(a,3)
3、多项式的拟合
拟合:根据一组已知数据找到其数学表达式
拟合方法:使方差最小,应用最小二乘法
p=polyfit(x,y,n)
x,y是已知的N个数据坐标向量,n是拟合的多项式次数,p是求出多项式系数向量
八、非线性函数分析及函数的数值分析
1、非线性函数分析
-
绘制函数曲线:
fplot(‘函数名’,[初值,终值])
-
求函数极值:
fmin(‘函数名’,初值,终值)
-
求函数零点:
fzero(‘函数名’,初猜值)
2、函数的数值积分
定积分子程序:quad(‘函数名’,初值,终值)
九、线性微分方程的解——拉普拉斯变换
首先利用拉普拉斯变换将线性常微分方程变换为代数方程,响应的表达式为s的有理分式
-
部分分式展开:
[r,p,k]=residue(b,a)
-
求反变化:
y(t)=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t)+r(3)*exp(p(3)*t)