最近在学Matlab,感觉里面一些基本的函数还是应该记住的。这个庞然大物作为一个商业软件,其强大的各种函数包可以满足各种工作要求,我对一些常见的函数做一些总结,随着不断的学习我也会对其进行补充。:)
1.多项式表达,求解
-
p=[1 0 -3 5] #p表示降幂次数的多项式
- x=[1,2,3]
-
polyval(p,x)........求多项式p在x的值
-
roots(p)..............求p在复数域上的根
-
conv(a,b) ............求多项式a,b的卷积
2.曲线拟合
- x=[1 2 3 4 5]
- y=[2 4 6 8 9]
-
p=polyfit(x,y,n) 以n次多项式为模型进行拟合
-
CFTOOL进行拟合
3.微积分
-
F=@(x)(x.^3-2*x-5).........@(x)表示x为变量 F为x的函数,实际为匿名函数
-
Q=quad(F,a,b)...................求F在(a,b)的数值积分
-
int(被积函数,积分变量,下限,上限)多元积分转化为多次积分求解
-
diff(微分函数,'微分变量',微分次数)
4.矩阵特性
[v,d]=eig(A).....................d是特征值,v是特征向量
a,b为矩阵 ax=b................x=a\b
B=inv(A)........................求A的逆矩阵
5.绘图
-
ezplot(f,xmin,xmax)或ezplot(f,[xmin,xmax])......f可包含单个字符变量x的字符串或表达式,默认区间为(-2pi,2pi),如果包含x,y,画出图像是f(x,y)的图像。x,y区间也为(-2pi,2pi)
-
fplot(func,lims,tol,'linespec',n) lims=[xmin,xmax]
-
subplot(a,b,c)生成子图
-
plot(x,y,'样式')
-
plotyy(x1,y1,x2,y2,[fun])用字符串fun指定的绘图函数(有'plot','semilogx','semilogy','loglog','stem')
-
plot3(x,y,z)三维图
-
fplot(f,xinterval) f为表达式 绘制表达式图像
-
refline(0,pi) 添加参考线 0,pi处各一条线
6.与excel交互
-
[typ,desc,fmt]=xlsinfo(filename)获取文件类型,内部表名称,支持文件的软件版本
-
[data,textdata]=xlsraed(filename),
-
data=xlsread(filename,sheet,range)................data:数值数据,textdata:文字数据,sheet数据表
-
[status,message]=xlswrite(filename,M,sheet,range).......M为写入变量的名称
7.杂
-
cumprod(1:5) 1 2 6 24 120生成累乘数
-
isscalar(A) 判断是不是数字
-
warning('MESSAGE') display the warning message ‘MESSAGE’
-
y=logspace(a,b,[n]) y=logspace([a,b,n])generates n points between decades 10^a and 10^b. 默认50
-
grid on 添加网格线
-
hist(x,50) 绘制x的频数分布直方图 ,50个柱子
-
[fp,xp]=ecdf(x) xp为x从小到大排列的有序样本 fp为其累积频率
-
ecdfhist(fp,xp,50)绘制频率直方图
-
randsample(xvalue,100,true,xp) 离散一元分布随机数 true表示放回抽样
-
nchoosek(a,b)Cab的组合数
-
tabulate(x) 生成频率统计表
-
all函数:检测矩阵中是否全为非零元素any函数:检测矩阵中是否有非零元素,如果有,则返回1,否则,返回0。用法和all一样语法:
B = all(A)
B = all(A, dim)
B = all(A):如果A是一个向量,如果所有的元素都是非零的,则返回1,如果有一个元素为零,则返回0。如果A是一个矩阵,则返回一个行向量,用于检测每一列是否全为非零元素,如果某一列中有一个元素为零,则返回0,如果某一列中全为非零元素,则返回1,由此构成一个行向量。B = all(A, 1)返回一个行向量,可以认为all(A, 1)等价于all(A)B = all(A, 2) 返回一个列向量,用于检测每一行是否全为非零元素,如果某一行中有一个元素为零,则返回0,如果某一行中全为非零元素,则返回1,由此构成一个列向量。
-
获取散点的包络线
-
dt = DelaunayTri(x,y)
-
k = convexHull(dt)
-
plot(x,y, '.', 'markersize',10); hold on;
-
plot(x(k), y(k), 'r'); hold off;
8.数据的描述性统计
score=score(score>0)
score_mean=mean(score)
s1=std(score,0)
score_max=max(score)
score_min=min(score)
score_range=range(score)
score_m1=quantile(score,[0.25,0.5,0.75])%分位数
score_mode=mode(score)
score_median=median(score)
score_cvar=std(score)/mean(score)%变异系数
A2=mean(score.^2)%二阶原点矩
B1=moment(score,1)%一阶中心矩
score_skewness=skewness(score)%计算样本偏度
cov(XY)计算协方差
corrcoef(XY)计算相关系数