如何用matlab批量求均值?有矩阵如下600000 3600000 4600000 4600000 3600000 4600000 3600000 4600000 3600000 4600004 3600004 3600004 3600004 3600004 3600004 3600004 4600005 5600005 4600005 4600005 5600005 4600005 4600005 5600005 4600005 46000

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 04:48:54

如何用matlab批量求均值?有矩阵如下600000 3600000 4600000 4600000 3600000 4600000 3600000 4600000 3600000 4600004 3600004 3600004 3600004 3600004 3600004 3600004 4600005 5600005 4600005 4600005 5600005 4600005 4600005 5600005 4600005 46000
如何用matlab批量求均值?
有矩阵如下
600000 3
600000 4
600000 4
600000 3
600000 4
600000 3
600000 4
600000 3
600000 4
600004 3
600004 3
600004 3
600004 3
600004 3
600004 3
600004 4
600005 5
600005 4
600005 4
600005 5
600005 4
600005 4
600005 5
600005 4
600005 4
600005 4
600005 5
600005 4
600005 5
600005 4
600005 5
600006 3
600006 3
600006 3
600006 3
600006 3
600006 3
600006 3
600006 3
600006 3
我想要求第一列序号相同对应的第二列的数值的平均值,如第一列中序列号都是600000对应的第二列的平均值,第一列中序列号都是600004对应的第二列的平均值...依次类推,最终得到一个平均值数列.
由于这个矩阵很大(上面只是给出大矩阵的一部分),无法手工一个个算,

如何用matlab批量求均值?有矩阵如下600000 3600000 4600000 4600000 3600000 4600000 3600000 4600000 3600000 4600004 3600004 3600004 3600004 3600004 3600004 3600004 4600005 5600005 4600005 4600005 5600005 4600005 4600005 5600005 4600005 46000
假设你的数据矩阵为a.
%按第一列排序,若已经排好可省略这两行
[b,pos]=sort(a(:,1));
a=a(pos,:);
A=a(:,1);
B=a(:,2);
[C,ia,ic]=unique(A);
ia=[ia;length(A)+1];
for i=1:length(C)
avg(i)=mean(B(ia(i):(ia(i+1)-1)));
end
一维数组avg即为要求的平均值,对应的序列号是C