Matlab中的数据分析与多项式计算
更新时间:2019·04·01
更新内容:
数据统计分析
函数 | 函数使用 | 描述 | 备注 |
---|---|---|---|
Max | [y,k]=Max(a)/Max(A) | 取向量a或矩阵A的最大元素y为序号k对应的值 | 如果元素为复数则按模取最大值 |
Min | [y,k]=Min(a)/Max(A) | 取向量a或矩阵A的最小元素y为序号k对应的值 | |
mean | mean(A) | 矩阵的平均值 | |
median | median(A) | 矩阵的中值 | 数据个数为偶数时,等于中间两元数的平均值;为奇数时,为中间元素值 |
sum | sum(a) | 向量元素的和 | |
prod | prod(a) | 向量元素的积 | |
cusum | cusum() | 累加和函数 | |
cumprod | cumprod() | 累乘积函数 | |
std | std(X) | 向量X的标准差 | |
std(A) | 矩阵各列的标准差 | ||
std(A,flag,dim) | flag定义标准差的计算公式 | 默认flag=0,dim=1 | |
corrcoef | corrcoef(A) | 返回矩阵A的相关系数矩阵 | |
corrcoef(X,Y) | 返回向量X与向量Y的相关系数 | 与corrcoef([X,Y])一样 | |
sort | sort(X) | 向量X按升序排列 | |
[Y,I]=sort(A,dim,mode) | 矩阵向量排序 | mode指定升序或降序,dim指定按行或按列 |
示例
%生成10x5的随机矩阵服从正态度分布
>> A = randn(10,5)
A =
-0.3031 0.9492 -0.8757 1.2347 -0.9480
0.0230 0.3071 -0.4838 -0.2296 -0.7411
0.0513 0.1352 -0.7120 -1.5062 -0.5078
0.8261 0.5152 -1.1742 -0.4446 -0.3206
1.5270 0.2614 -0.1922 -0.1559 0.0125
0.4669 -0.9415 -0.2741 0.2761 -3.0292
-0.2097 -0.1623 1.5301 -0.2612 -0.4570
0.6252 -0.1461 -0.2490 0.4434 1.2424
0.1832 -0.5320 -1.0642 0.3919 -1.0667
-1.0298 1.6821 1.6035 -1.2507 0.9337
%各列元素的均值
>> mean_A = mean(A)
mean_A =
0.2160 0.2068 -0.1892 -0.1502 -0.4882
%矩阵A的最大元素
>> Max_A = max(max(A))
Max_A =
1.6821
%矩阵A的最小元素
>> Min_A = min(min(A))
Min_A =
-3.0292
%矩阵A的行元素和
>> sum_A_2 = sum(A')
sum_A_2 =
0.0571 -1.1244 -2.5395 -0.5981 1.4527 -3.5018 0.4398 1.9160 -2.0878 1.9388
%矩阵A的所有元素之和
>> sum_A = sum(A(:)) %矩阵A的所有元素之和
sum_A =
-4.0472
%矩阵按列升序排列
>> sort_A = sort(A)
sort_A =
-1.0298 -0.9415 -1.1742 -1.5062 -3.0292
-0.3031 -0.5320 -1.0642 -1.2507 -1.0667
-0.2097 -0.1623 -0.8757 -0.4446 -0.9480
0.0230 -0.1461 -0.7120 -0.2612 -0.7411
0.0513 0.1352 -0.4838 -0.2296 -0.5078
0.1832 0.2614 -0.2741 -0.1559 -0.4570
0.4669 0.3071 -0.2490 0.2761 -0.3206
0.6252 0.5152 -0.1922 0.3919 0.0125
0.8261 0.9492 1.5301 0.4434 0.9337
1.5270 1.6821 1.6035 1.2347 1.2424
%矩阵按行降序排列
>> sort_A_2 = sort(A,2,'descend')
sort_A_2 =
1.2347 0.9492 -0.3031 -0.8757 -0.9480
0.3071 0.0230 -0.2296 -0.4838 -0.7411
0.1352 0.0513 -0.5078 -0.7120 -1.5062
0.8261 0.5152 -0.3206 -0.4446 -1.1742
1.5270 0.2614 0.0125 -0.1559 -0.1922
0.4669 0.2761 -0.2741 -0.9415 -3.0292
1.5301 -0.1623 -0.2097 -0.2612 -0.4570
1.2424 0.6252 0.4434 -0.1461 -0.2490
0.3919 0.1832 -0.5320 -1.0642 -1.0667
1.6821 1.6035 0.9337 -1.0298 -1.2507
多项式计算
函数 | 函数使用 | 描述 | 备注 |
---|---|---|---|
conv | conv(P1,P2) | 多项式相乘 | |
deconv | [Q,r]=deconv(P1,P2) | 多项式相除,Q为商式,r为余式 | P1=conv(Q,P2)+r |
polyder | p=polyder(P1) | 多项式P1的导函数 | |
p=polyder(P,Q) | 求P x Q的导函数 | ||
[p,q]=polyder(P,Q) | P/Q的导函数,分子存入p,分母存入q | ||
polyval | polyval(p,x) | 代数多项式求值,p为系数向量,x可以为标量,向量,矩阵 | 元素在多项式的取值 |
polyvalm | polyvalm(p,x) | 矩阵多项式求值 | 如上,但要求x为方阵 |
roots | roots(P1) | 多项式P1求根 |
示例
% 生成多项式
>> f=[3,-5,0,-7,5,6];
>>g=[3,5,-3];
>>g1=[0,0,0,g];
% 多项式求和
>> f+g1
ans =
3 -5 0 -4 10 3
% 多项式求差
>> f-g1
ans =
3 -5 0 -10 0 9
% 多项式求积
>> conv(f,g)
ans =
9 0 -34 -6 -20 64 15 -18
% 多项式求商和余式
>> [Q,r]=deconv(f,g)
Q =
1.0000 -3.3333 6.5556 -16.5926
r =
0 0 0 0 107.6296 -43.7778
% 反过来验证
>> conv(g,Q)+r
ans =
3.0000 -5.0000 0 -7.0000 5.0000 6.0000
数值插入
函数 | 函数使用 | 描述 | 备注 |
---|---|---|---|
interp1 | interp1(X,Y,X1,method) | 一维插值函数 | method为插入方式,如linear线性插入 |
曲线拟合
函数 | 函数使用 | 描述 | 备注 |
---|---|---|---|
polyfit | P=polyfit(X,Y,m) | 最小二乘拟合多项式系数 | m表示多项式次数 |
[P,S]=polyfit(X,Y,m) | 最小二乘拟合多项式系数 | S表示采样点误差 | |
[P,S,mu]=polyfit(X,Y,m) | 最小二乘拟合多项式系数 | mu(1)指定mean(X),mu(2)指定std(X) |