我想计算每个元素在向量中出现的概率

时间:2016-07-08 10:58:35

标签: image probability matlab-cvst

我已经尝试使用arrayfun(),如下面的回答在stackoverflow:

prob_y = arrayfun(@(x)length(find(y==x)), unique(y)) / length(y)

但问题是我必须在向量中找到40个不同值的出现,所以我必须使用这个arrayfun()40次并且它对第一个值运行得更快,但是当它用于第二个值时,它花费了大量的时间,我的矢量大小也很大。有人可以为我建议一些替代方案,这样可以节省我的时间吗?

1 个答案:

答案 0 :(得分:0)

您可以同时使用histunique来有效地执行此操作。

[a, b] = hist(y, unique(y));
a = a/length(y);