2016-07-08 14 views
0

Я попытался его с помощью arrayfun() следующим образом, как ответил на StackOverflow:Я хочу, чтобы вычислить вероятность каждого элемента, происходящего в векторе

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

Но проблема состоит в том, что я должен найти вхождения 40 различных значений в вектор, поэтому мне придется использовать этот массивfun() в 40 раз и он работает быстрее для первого значения, но когда он идет для второго значения, он занимает много времени и мой размер вектора также огромна. Может кто-нибудь, пожалуйста, предложите мне альтернативу для этого, чтобы он мог сэкономить мое время?

ответ

0

Вы можете использовать hist и unique вместе, чтобы сделать это эффективно.

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

Спасибо, Prakhar .. –