Заполнить вектор с вероятностными вычислениями
1 joepd [2014-09-26 16:48:00]
У меня есть следующие векторы:
s = [1 0 2];
lambda = [1 2 3];
Эти векторы могут быть n-мерными, а не только трехмерными. Основываясь на этой информации, я хотел бы создать "вектор вероятности":
p = [poisspdf(0, lambda(1))+poisspdf(1, lambda(1)) poisspdf(0,lambda(2)) poisspdf(0,lambda(3))+poisspdf(1,lambda(3))+poisspdf(2,lambda(3))]
Таким образом, вектор s определяет, сколько членов существует для вектора вероятности, например s (1) = 3 означает p (1) = P (X = 0) +P (X = 1) +P (X = 2),
Я попробовал что-то вроде этого:
p = sum(poisspdf(0:s,lambda));
Однако это работает только для s = [0 0 0] и сбрасывается при s = [1 0 0] и так далее. (Ошибка в poisspdf: требуется нескалярные аргументы для соответствия по размеру.)
Заранее спасибо!
matlab
1 ответ
1 Решение s.bandara [2014-09-26 17:39:00]
Вы работаете с двумя измерениями, т.е. вы вычисляете p для разных lambda, но также интегрируете, пока не достигнете разных s. Если lambda явно зацикливается, это может показаться вам более понятным:
n_p = length(lambda)
p = zeros(n_p, 1);
for k = 1 : n_p
p(k) = sum(poisspdf(0:s(k), lambda(k)))
end