Напишите особый случай умножения продуктов в Matlab - PullRequest
0 голосов
/ 24 апреля 2018

У меня проблема с использованием функции prod (или symprod) в Matlab, когда мне нужно обойти несколько индексов, как показано в примере ниже:

i = 1 to 5;

В этом случае мне не нужно использовать i = 2:

f = (1 - x(1))*(1 - x(3))*(1 - x(4))*(1 - x(5))

Как написать это уравнение, используя 'prod' или 'symprod' в Matlab?

1 Ответ

0 голосов
/ 24 апреля 2018

Предполагая, что x представляет вектор, вы можете использовать следующий синтаксис:

res = prod(1-x([1,3:5]));

Если вы используете цикл, такой, что переменная ii представляет координату, которую нужно опустить, вы можете использовать:

res = prod(1-x([1:ii-1,ii+1:end]))
...