假设我有一个样本矩阵samples
(n_samples x n1)和一个标签向量labels
(n_samples x 1),其中标签的范围是[1:n2]
我正在寻找一种有效的方法来创建大小为n2 x n1的经验联合概率矩阵P
。
对于每个样本i
,我们会在samples(i, :)
指示的位置将其行P
添加到labels(i)
。
即。 (伪代码)
for i = 1:n_samples
P(l(i), :) += M(i, :)
这样做是否有杀手matlab命令?而不是for循环或arrayfun?
答案 0 :(得分:0)
关注@BillBokeey评论:这是解决方案
[xx, yy] = ndgrid(labels,1:size(samples,2));
P = accumarray([xx(:) yy(:)],samples(:));