Два одновременных для циклов MATLAB или C ++ - PullRequest
2 голосов
/ 21 января 2012

Я бы хотел запустить два зависимых не вложенных цикла for.По сути, они представляют собой две одновременные цепочки Маркова, где один цикл должен проверять значение в другом цикле.Есть ли правильный способ сделать это?Есть ли неправильный / неэффективный способ избежать?

Воображаемый пример:

Представьте, что два человека ходят по комнате и трогают вещи: я записываю те вещи, которых они касаются, в двух отдельных массивах.Это мои две Chains или for петли.Это нормально, пока их поведение не зависит.Но я хотел бы изменить это, и поэтому им придется реагировать (в режиме реального времени) на то, что делает другой человек.Можно ли это сделать (конечно, да)?

Например, цикл 1 будет выглядеть примерно так:

for k=1:n
    do something

     %check loop 2
     if something is equivalent
          moves=n;
     end        
end

NB.Технически это можно было бы сделать один цикл за другим, но я надеюсь запустить что-то в режиме реального времени, если это возможно.

1 Ответ

2 голосов
/ 21 января 2012

Возможно, вы захотите построить это как один for цикл, который обрабатывает обе цепочки одновременно.В псевдокоде

for k = 1:n
    compute step k of chain 1
    compute step k of chain 2

    deal with interaction between chains

Вы захотите упаковать каждую цепочку в структуру данных, которая может быть передана функции, чтобы вам не приходилось повторять код «compute step k» дважды с измененными именами переменных.

Беспокойство по поводу распараллеливания, только если этот последовательный подход слишком медленный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...