欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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计算二维数值积分

相关标签: MATLAB 数据分析