У меня проблема с моим кодом MATLAB. Позвольте мне сначала дать вам некоторые объяснения по этому вопросу. У меня есть две матрицы, которые представляют вероятности конкретных результатов событий. Первый называется DemandProbabilityMatrix или короче DemandP. Запись (i, j) показывает вероятность того, что элемент i востребован j много раз. Точно так же у нас есть ReturnProbabilityMatrix, то есть ReturnP. Элемент типа (i, j) хранит вероятность того, что элемент i возвращается j много раз.
Мы хотим вычислить вероятность чистого спроса из этих двух матриц. Для примера:
DemandP = [.4 .5 .1]
ReturnP = [.2 .3 .5]
В этом случае у нас есть 1 элемент, и он может быть запрошен или возвращен 1,2 или 3 раза с заданными вероятностями. Чтобы быть более конкретным, этот предмет будет востребован только один раз с вероятностью .4.
Тогда нам нужно вычислить чистый спрос. В этом случае чистый спрос может быть -2, -1,0,1 или 2. Например, чтобы получить чистый спрос -1, мы можем либо иметь спрос 1 и возврат 2 или спрос 2 и возврат из 3. Таким образом, мы имеем
NetDemandP (1,2) = DemandP (1,1) * ReturnP (1,2) + DemandP (1,2) * ReturnP (1,3).
Таким образом, NetDemandP должен выглядеть так:
NetDemandP = [. 20 .37 .28 .13 .02]
Я могу сделать это с помощью вложенных циклов for
, но я пытаюсь найти более быстрый путь. Если это помогает, у меня есть следующие решения для циклов for
, где I
обозначает количество строк в ReturnP
и DemandP
, J+1
обозначает количество столбцов в этих матрицах.
NetDemandP=zeros(I,2*J+1);
for i=1:I
for j=1:J+1
for k=1:J+1
NetDemandP(i,j-k+J+1)=NetDemandP(i,j-k+J+1)+DemandP(i,j)*ReturnP(i,k);
end
end
end
Заранее спасибо