Заполнить вектор с вероятностными вычислениями

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