如何用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/07/05 05:28:33
如何用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 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