MATLAB数据分析
程序员文章站
2024-01-29 10:21:04
...
一、数据分析基础
close all;
clear all;
clc;
%% 最大值,最小值,中位值
a=magic(3);
b=[1 4 5;2 8 5;3 6 9];
v=[1 5 8 4 6 9 2 10 5 7];
v1=max(v);%求最大值
a1=max(a);%以列为顺序求每列上的最大值,结果为行向量
a2=max(a,[],2);%以行为顺序求每行上的最大值,结果为列向量
b1=max(a,b);%对应元素的比较
[C,I]=max(v);% I为索引位置,C为该位置上的值
d1=median(v);%以列为顺序求每列上的中位数,结果为行向量
d2=median(b,2);%以行为顺序求每行上的中位数,结果为列向量
%% 排序
v3=sort(v);%默认以升序排列
v4=sort(v,'descend');%以降序排列
b2=sort(b);%默认对列以升序排列
b3=sort(b,2);%对行列以升序排列
[B,index]=sort(v);%index返回的是B中每个元素在原来矩阵中的位置
b4=sortrows(b);%以行为单位排序,常用于字符串
%% 分位数,求和、积和差分
x=[1 2 5 8 9 7 4 5 6 2 5 4 8 4 5 5 8];
Y=quantile(x,1/4);%1/4分位数
x1=sum(x);%求和
x2=sum(a);%默认以列为序求和
x3=sum(a,2);%以行为序求和
x4=prod(a,2);%以行为序求积
x5=cumsum(a);%默认以列为序求累计和
x6=diff(x);%差分运算
%% 均值和方差
x7=mean(a);%求列上的均值
x8=mean(a,2);%求行上的均值
a3=std(a,1,2);%求行方向上的二型标准差,该值的平方为方差
a4=cov(a);%求协方差
二、多项式及其函数% 多项式及其函数分析
close all;
clc;
%% 多项式的创建、求根、四则运算
p1=[3 -10 0 5 1000];%创建多项式,缺少的幂系数用0表示
r1=roots(p1);%求多项式的根
a2=[1 5 15 35 69 100 118 110 72];
b1=[0 0 0 0 1 2 4 6 8];
b11=[1 2 4 6 8];
c1=a2+b1;%加法:类似于矩阵相加
d1=conv(a2,b1);%乘法:矩阵的卷积
[e1,r2]=deconv(a2,b11);%除法,被除项首项不能为零
%% 多项式的导数、积分、估值
a2=[1 5 15 35 69 100 118 110 72];
b2=polyder(a2);%导数
b22=polyint(a2);%积分
x2=-1:0.01:1;
g2=[1 0 0];
h2=polyval(g2,x2);%估值运算
plot(x2,h2);
xlabel('x');
title('x^2');
%% 有理多项式
a3=[5 3 -2 7];
b3=[-4 0 8 3];
[r,p,k]=residue(a3,b3);
c3=[5 3 -2 7];
d3=[-4 0 8 3];
[e3,f3]=polyder(a3,b3);
三、数据插值%% 数据插值
close all;
clear all;
clc;
%% 一维插值
x1=0:0.1:2*pi;%自变量
y1=sin(x1);
x11=0:0.5:2*pi;%插值点向量
y11=interp1(x1,y1,x11,'linear');%线性插值
%plot(x1,y1,x11,y11);
%% 一维傅里叶插值(对数据进行增采样)
x2=0:1.2:10;
y2=sin(x2);
n2=2*length(x2);%增采样一倍
y22=interpft(y2,n2);%一维傅里叶插值
x22=0:0.6:10.4;
plot(x2,y2,'ro');
plot(x22,y22,'b.-');
%% 快速傅里叶变换插值
x3=0:2*pi;
y3=sin(x3);
z3=interpft(y3,15);
x33=linspace(0,2*pi,15);
plot(x3,y3,'-o',x33,z3,':o');
%% 二维插值
[x4,y4]=meshgrid(-3:0.25:3);%产生三维网格数据
z4=peaks(x4,y4);%peaks产生一个凹凸有致的曲面,可以对函数取点
[x44,y44]=meshgrid(-3:0.125:3);%产生更精密的插值点
z44=interp2(x4,y4,z4,x44,y44,'linear');%双线性插值
mesh(x4,y4,z4);%画三维图
hold on;
mesh(x44,y44,z44+15);
hold off;
axis([-3 3 -3 3 -5 20]);
四、函数极限与数值积分%% 函数极限与数值积分
close all;
clear all;
clc;
%% 函数极限
n1=1:200;
y1=n1./(3*n1+1);
figure;
plot(n1,y1);%显示数列
syms x1;%定义一个符号变量
y11=x1/(3*x1+1);%符号操作
z1=limit(y11,x1,inf);
%% 一维数值积分
[email protected](x2)1./((x2).^3-2*(x2)-5);%@(x)用于定义无名函数
q2=quad(f2,0,2);
%% 多重数值积分
[email protected](x3,y3)(y3)*sin(x3)+3*cos(y3)-1;
xmin=0;
xmax=2*pi;
ymin=0;
ymax=2*pi;
q3=dblquad(f3,xmin,xmax,ymin,ymax,'quadl');%使用quadl方法计算一维积分,dblquad计算二维数值积分
下一篇: 受控组件与非受控组件