matlab有没有类似tabulate的统计二元值的函数?

问题描述:

matlab有没有类似tabulate的统计二元值的函数?
就是统计一个2列矩阵,
1 2
2 3
1 2
2 4
2 5
这样的两列有多少的函数?
tabulate只能是统计一元的.
[原问题是这样的,6milion的两列data(userID and locationID),想统计其中tabulate结果 第三维数值,就是相同个数.
在统计完之后重新扫描data每一行,想知道这一行对应的个数是多少.
如果只得到像上面的数列,还要再来一重循环定位在tabulate结果矩阵的位置,效率十分低,..]
1个回答 分类:综合 2014-10-28

问题解答:

我来补答
你还没有搞定这个啊?
[b m n]=unique(a,'rows');
c=tabulate(n);
s=[a(m(c(:,1)),:),c(:,2:end)];
运行以上代码返回的矩阵s和tabulate返回的相似,不过可以统计多列
两列,三列,.n列都可以
前面n列是统计的元素 后面两列是 他们出现的次数和百分比
这是用上你上面a的数,统计的结果
s=
1 2 2 40
2 3 1 20
2 4 1 20
2 5 1 20
原来 个 百分
的元素 数 比
再问: �������������������ô...�� �����÷���������õ��Ľ���һ��ô �õ�����5�о������ÿһ����һ����Ӧ�Ľ�� 1 2 2 40 2 3 1 20 1 2 2 40 2 4 1 20 2 5 1 20 �ҵ�ԭ����������ģ��������������ƣ���д��������IJ���������..
再答: [b m n]=unique(a,'rows'); c=tabulate(n); s=zeros(size(a,1),1); for ii=1:size(c,1) s(n==ii,1)=c(ii,2); end ��������ɣ�Ҫͳ�ƻ�Ҫ����ɨ�裬Ч���Ǹ߲����� ����sֻ����һ��,ÿ�к�ԭ���Ķ�Ӧ����ʾͳ�ƵĴ���
 
 
展开全文阅读
剩余:2000