MATLAB中几种实用的数据处理方法

1.求两组数据(向量)的交集

        在实际应用中通常会通过求两个向量的交集来统计数据出现的概率大小

A=[1,2,3,4,5];
B=[2,3,4,5,6];
C=intersect(A,B);

用intersect函数计算,C里面的数据就是A和B的交集了

2.求出一个矩阵中所有元素出现的次数以及频率

     

A=[];
A1=tabulate(A(:));

        

        矩阵A是待求矩阵,A(:)是将矩阵A转化成向量,函数tabulate求出矩阵A中所有元素及所出现的次数和频率放入A1矩阵中

3.求一个向量中出现最多及次多的元素

        求一个向量中出现的最多元素或通过对向量中元素出现次数的多少进行排序

K=[1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,1,2,3];
for i=1:5
    x(i,:)=mode(K);
    K(:,K(1,:)==x(i,:))=[];
end

        函数mode是求向量中出现的最多元素,通过for循环实现求取第一个最多元素后放入x中,并将x中的元素在K中赋值为空,进行多次循环实现对向量中元素的个数排序,若是K中的元素数量相同时,将按照数字大小输出

4.查找矩阵中每行或每列中出现最多的元素

for j=1:10
K1(j,:)=y1(j,:);
for i=1:1
    xx1(i,j)=mode(K1(j,:));
    %K(:,K(1,:)==xx(i,:))=xx(i,:);
end
end
A1 = xx1(:);
B1 = unique(A1,'rows');
F1 = reshape(B1,[],size(A1,2));

        y1是所要求矩阵(假设有10行),输出F1是每一行中出现最多元素构成的列向量,可通过转置成为行向量

for j=1:10
    K(:,j)=y1(:,j);
for i=1:1
    xx(i,j)=mode(K(:,j));
end
end
A = xx(:);
B = unique(A,'rows');
F = reshape(B,[],size(A,2));

        同理,对矩阵y1每一列求出现最多次数的元素

5.通过for循环去除结果矩阵中的不合理项

        假设生成了一个1000*500的矩阵,其中矩阵的每一列的最后一个元素不能大于50,判断并去除最后一个元素大于50的列

for opk=1:500
if y1(1000,opk)>50
    y1(:,opk)=[];
end
end    %去除特殊元素

        生成的y1中将不含最后一行大于50的列,同理也可进行其他行操作

6.求矩阵的平均值及其他操作

        通常所说的求平均值是对矩阵的行或者列进行求取

A=[];
A1=mean(A,1);%按列
A2=mean(A,2);%按行

        求平均值mean

        向下取整floor

        四舍五入round

        取绝对值abs

        取实部real

        ..........

下期预告: setdiff函数的及上面函数的组合实战应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值