%%%%%%%%%%%%%%%
%MATLAB常用函数
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%
%特殊矩阵构造函数
%%%%%%%%%%%%%%%%
ones 创建一个所有元素都为1的矩阵
zeros 创建一个所有元素都为0的矩阵
eye 创建对角线元素为1,其他元素为0的矩阵
accumarray 将输入矩阵的元素分配到输出矩阵中的指定位置
diag 根据向量创建对角矩阵
magic 创建一个方形矩阵,其中行、列和对角线上元素的和相等
rand 创建一个矩阵或数组,其中的元素为服从均匀分布的随机数
randn 创建一个矩阵或数组。其中的元素为服从正态分布的随机数
randperm 创建一个向量(1*n的矩阵)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%
%矩阵聚合函数
%%%%%%%%%%%%
cat 沿指定的维聚合矩阵
horzcat 水平聚合矩阵
vertcat 垂向聚合矩阵
repmat 通过复制和叠置矩阵来创建新矩阵
blkdiag 用已有矩阵创建块对角矩阵
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%
%矩阵信息函数
%%%%%%%%%%%%
length 返回最长维的长度
ndims 返回维数
numel 返回元素个数
size 返回每一维的长度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%
%数据类型检查函数
%%%%%%%%%%%%%%%%
isa 确定输入数据是否属于给定类型
iscell 确定输入数据是否属于单元数组
iscellstr 确定输入数据是否属于字符串单元数组
ischar 确定输入数据是否属于字符数组
isfloat 确定输入数据是否属于浮点数组
isinteger 确定输入数据是否属于整型数组
islogical 确定输入数据是否属于逻辑数组
isnumeric 确定输入数据是否属于数值数组
isreal 确定输入数据是否属于实型数组
isstruct 确定输入数据是否属于结构数组
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%
%数据结构检查函数
%%%%%%%%%%%%%%%%
isempty 确定输入数据是否为空
isscalar 确定输入数据是否为标量
issparse 确定输入数据是否为稀疏矩阵
isvector 确定输入数据是否为向量
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%
%重塑矩阵的函数
%%%%%%%%%%%%%%
reshape 重塑矩阵
rot90 旋转矩阵90度
fliplr 沿垂轴翻转矩阵
flipud 沿水平轴翻转矩阵
flidim 沿指定方向翻转矩阵
transpose 沿主对角线翻转矩阵
ctranspose 转置矩阵
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%
%导入数据
%%%%%%%%
load %导入数据
load('data.txt','-ascii') %导入文本数据
load wind %导入MAT文件数据
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%表达式采用的算术运算符和优先规则
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %加
- %减
* %乘
/ %除
\ %左除
^ %幂
' %复数共轭转置
() %指定计算顺序
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%
%常用常数的表示和值
%%%%%%%%%%%%%%%%%%
pi %3.14159265……
i %虚数单位
j %与i相同
eps %浮点相对精度
realmin %最小浮点数
realmax %最大浮点数
Inf %无限值
NaN %空值
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
%逻辑操作符
%%%%%%%%%%
& %逻辑与 and(X,Y)
| %逻辑或 or(X,Y)
~ %逻辑非 not(X,Y)
%逻辑异或 xor(X,Y)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
%多项式函数
%%%%%%%%%%
conv 多项式相乘
deconv 多项式相除
poly 用多项式的根求多项式系数
polyder 多项式求导
polyfit 多项式曲线拟合
polyval 多项式评价
polyvalm 矩阵多项式评价
residue 残差运算
roots 多项式求根,是poly函数的逆运算
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%
%MATLAB提供的插值函数
%%%%%%%%%%%%%%%%%%%%
griddata 数据网格化和曲面拟合
griddata3 三维数据的网格化和超曲面拟合
griddatan 大于三维数据的网格化和超曲面拟合
interp1 一维插值
interp2 二维插值
interp3 三维插值
interpft 用快速傅立叶变换(FFT)进行一维插值
interpn N维插值
mkpp 使用分段多项式
pchip 分段三次Hermite插值多项式(PCHIP)
ppval 分段多项式评价
spline 三次样条数据插值
unmkpp 分段多项式细节
@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%
%一维插值
%%%%%%%%
%yi=interp1(x,y,xi,method)
%x,y为给定数据的向量,长度相同;xi为包含要插值的点的向量。
%最近邻插值(method='nearest')
%线性插值(method='linear')
%三次样条插值(method='spline')
%三次插值(method='pchip'或'cubic')
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%
%基于FFT的插值
%%%%%%%%%%%%%
%y=interpft(x,n)
%x是一个包含周期函数值的向量,这些值在等间隔的点上采取;n为样本大小。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%
%二维插值
%%%%%%%%
%ZI=interp2(X,Y,Z,XI,YI,method)
%Z是一个矩形数组,包含二维函数的值,X和Y为大小相同的数组,包含相对于Z的给定值。XI和YI为包含插值点数据的矩阵,method表示插值方法。
%最近邻插值(method='nearest')
%双线性插值(method='linear')
%双三次插值(method='cubic')
@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%
%高维插值
%%%%%%%%%
%VI=interp3(X,Y,Z,V,XI,YI,ZI,method)
%VI=interpn(X1,X2,X3,...,V,Y1,Y2,Y3,...,method)
%[X1,X2,X3,...]=ndgrid(x1,x2,x3,...)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%
%多维数据的插值函数
%%%%%%%%%%%%%%%%%%
interp3 三维数据插值
interpn 多维数据插值
ndgrid 多维数据网格化
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%与数据分析和统计有关的工具箱
%%%%%%%%%%%%%%%%%%%%%%%%%%%
optimization toolbox 优化工具箱 %非线性曲线拟合和回归
signal processing toolbox 信号处理工具箱 %信号处理、滤波和频率分析
pline toolbox 样条工具箱 %曲线拟合和回归
statistics toolbox 统计工具箱 %高级统计分析、非线性曲线拟合和回归
system identification toolbox 系统辨识工具箱 %参数/ARMA建模
wavelet toolbox 小波工具箱 %小波分析
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%
%基本数据分析函数
%%%%%%%%%%%%%%%%
max 最大值
min 最小值
mean 平均值
median 中值
range 极差
sum 元素的和
prod 元素的乘积
cumsum 元素的累积和
cumprod 元素的累积乘积
cumtrapz 累积梯形数值积分
sort 对数组元素按升序或降序排列
sortrows 将行按升序排列
diff 差分函数和近似求导 %向量连续元素之间的差,向量的数值偏导数
gradient 矩阵的数值偏导数
del2 矩阵的离散拉普拉斯变换
trapz 梯形数值积分
std 标准差 %std(X)
cov 向量的方差 矩阵的方差 %cov(X,Y)
corrcoef 相关系数 %corrcoef(X,Y)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%将向量x用于diff函数的几种方法
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%diff(x)==0 测试是否有重复元素
%all(diff(x)>0) 测试x的单调性
%all(diff(diff(x))==0)) 测试向量元素是否等间隔排列
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%%
%数据预处理
%%%%%%%%%%
%用isnan函数剔除NaN的几种方法
%i=find(~isnan(x));
%x=x(i)
%查找向量中非NaN的元素的编号,然后只保留非NaN元素。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%x=x(find(~isnan(x)))
%从向量中剔除NaN
@@@@@@@@@@@@@@@
%x=x(~isnan(x))
%从向量中快速剔除NaN
@@@@@@@@@@@@@@@@@@@
%x(isnan(x))=[]
%从向量中剔除NaN
@@@@@@@@@@@@@@@
%X(any(isnan(X)'),:)=[]
%从矩阵X中剔除任何包含NaN的行。
@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%%%%%%%
%回归分析
%%%%%%%%%
%线性回归 [b,bint,r,rint,stats]=regress(Y,X)
% 输入:Y是观测(因变量)向量;
% X是设计矩阵。
% 输出:b是回归系数估计值向量;
% bint是b的置信度为95%的置信区间;
% r是残差;
% rint是r的置信度为95%的置信区间;
% stats给出复相关系数的平方R2、F统计量和检验概率p。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%
%流控制
%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@
if expression
statements;
end
@@@@@@@@@@@@@@@@@@@@@@@@
if expression
statements;
else
statements;
end
@@@@@@@@@@@@@@@@@@@@@@@@
if expression1
statements;
else expression2
statements;
else expression3
statements;
......
end
@@@@@@@@@@@@@@@@@@@@@@@@
switch switch-expression
case case-expression1,
statements1;
case case-expression2,
statements2;
case case-expression3,
statements3;
......
otherwise
statements;
end
@@@@@@@@@@@@@@@@@@@@@@@@@
while expression
statements;
end
@@@@@@@@@@@@@@@@@@@@@@@@@
for v=expression
statements;
end
@@@@@@@@@@@@@@@@@@@@@@@@@
for v1=expression1
for v2=expression2
for v3=expression3
statements3;
end
statements2;
end
statement1;
end
@@@@@@@@@@@@@@@@@@@@@@@@
continue
@@@@@@@@@@@@@@@@@@@@@@@@
break
@@@@@@@@@@@@@@@@@@@@@@@@
return
@@@@@@@@@@@@@@@@@@@@@@@@
try,
statement,
...,
catch,
statement,
...,
statement,
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%
%二维图形绘制
%%%%%%%%%%%%
@@@@@@@@@@@@
%线性图
plot(x,y)
@@@@@@@@@@@@
%条形图
bar(x,y)
@@@@@@@@@@@
%面形图
area(x,y)
hold on
hold off
%hold指在图上继续操作
colormap cool
colormap([1 0 1])%[a b c]中a,b,c为0-1,三组数据构成颜色
%s=[1 1 0];
%colormap(s)
%给图着色
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%饼图
x=[20 40 40];
explode=[0 0 1];%括号内定义的是三块饼图中前两块不割出来,数值表示分离出来的距离。
pie(x,explode)
%x=[10 15 25 40 10];
%explode=[0 15 1 0 5];%5块饼图
%pie(x,explode)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%误差条图(显示数据的置信区间或沿曲线的偏差)
errorbar(Y,E)
%根据Y的数据绘图并在Y的每个元素处绘一误差条。误差条两端距离曲线上下均为E(i)长度。
errorbar(X,Y,E)
%用X和Y绘误差条图,误差条的长度为2*E(i)。X,Y,E必须大小相同。
errorbar(X,Y,L,U)
%用L(i)+U(i)指定误差条上下的长度,绘制误差条图。X,Y,L和U必须大小相同。L(i)定义曲线下方的距离,U(i)定义曲线上方的距离。
errorbar(X,Y,L,U,LineSpec)
%用LineSpec指定线型、标记和颜色绘制误差条图。
h=errorbar(X,Y,L,U,LineSpec)
%返回直线图形对象的句柄向量。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%散点图
scatter(X,Y,S,C)
%在向量X和Y指定的位置上显示彩色圆圈。X和Y大小须相同。S确定标记的大小,它可以时与X,Y大小相同的向量,也可以是标量(即标记都相同)。C确定每个标
%记的颜色。当C为与X,Y长度相同的向量时,将根据C中的值进行线性着色。当C为length(X)*3的矩阵时,用RGB值指定标记的颜色。C也可以是一个颜色字符串。
scatter(X,Y)
%默认大小和颜色。
scatter(X,Y,S)
%使用一种颜色,用指定的大小绘标记。
scatter(X,Y,S,markertype)
%用指定的标记类型替代'o'.
scatter(X,Y,S,markertype,'filled')
%填充标记。
h=scatter(...)
%返回scatter函数创建的直线对象的句柄。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%直方图
n=hist(Y)
%将Y中的元素分成10份,然后用间隔相同的条形表示,返回每个条形中元素的个素。若Y是矩阵,则hist函数对每一列数据生成一个直方图。
n=hist(Y,x)
%其中x为向量,可以确定图中的条形数目。如,若x为5个元素向量,则hist函数将Y中的元素分配到5组条形中。
n=hist(Y,nbins)
%其中nbins为标量,使用nbins组条形。
[n,xout]=hist(...)
%返回包含频数和条形位置的向量n和xout。可以使用bar(xout,n)来绘制直方图。
hist(...)
%创建一个上面描述的直方图。hist函数在Y的最小值和最大值之间沿x轴分配条形。
hist(axes_handle,...)
%将图形绘制到句柄axes_handle所表示的坐标系中。
%hist函数用等宽度的条形表示Y中数据的分布特征。如果Y是一个向量并且是唯一向量,则hist函数最多创建10个条形。
%eg1:yn=randn(10000,1);
% hist(yn)
%eg2:Y=randn(10000,3); 用单独的颜色显示每组条形。
% hist(Y)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%