MATLAB数据分析

来源:互联网 发布:表格管理系统源码 编辑:程序博客网 时间:2024/06/06 00:49

一、数据分析基础

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);%% 一维数值积分f2=@(x2)1./((x2).^3-2*(x2)-5);%@(x)用于定义无名函数q2=quad(f2,0,2);%% 多重数值积分f3=@(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计算二维数值积分