标签: matlab
我有一个矩阵A,其整数元素从0到N-1。
我需要得到的是长度为N的向量V,对于每个位置“i”,它将包含矩阵A中等于“i”的元素数。
例如:
N = 6 A: 0 0 1 1 2 3 3 5 0 V: 3 2 1 2 0 1 0
这样做的有效方法是什么?
我的真实矩阵大约是10K x 10K元素,N大约是100.
答案 0 :(得分:2)
您想使用histc(在reshape之后转换为向量)
n = histc(x,edges)计算向量x中下降的值的数量 在边矢量中的元素之间(必须包含 单调非减少的价值)。 n是长度(边缘)矢量 包含这些计数。
V = histc(reshape(A,1,[]), 0:(N-1) );
答案 1 :(得分:2)
使用v = histc(A(:), 0:(N-1))。要准确获得结果,请执行v = v'。
v = histc(A(:), 0:(N-1))
v = v'