Я запускаю файл .bat, используя команду system
(или dos
) в цикле parfor
в Matlab 2013a. Есть ли способ изменить, в какой каталог запускается команда? До сих пор кажется, что он всегда является текущим (рабочим) каталогом. Другой вариант - изменить рабочий каталог внутри цикла parfor, но это будет означать одновременное использование нескольких рабочих каталогов, что не представляется возможным. Причина, по которой я делаю это, заключается в том, что у меня есть одна модель Simpack и вы хотите одновременно запускать несколько разных симуляций. В последовательном цикле я могу сделать это, скопировав спецификацию моделирования в папку Simpack по одному, а параллельно, это нужно изменить.MATLAB: Запуск abat параллельно: возможно использование нескольких рабочих каталогов?
parfor i=1:2
...
cd(path_model_main_temp_i);
system('C:\SIMPACK\SIMPACKv8.9\s_8904\simpack\com\spck.bat simpack integ modelname');
copyfile(path_results_temp_i, path_results{i});
end
Этот сниппет не работает, но верно ли оно?
EDIT: Оказалось, что с моим кодом возникла другая проблема. Внутри парфорной петли возможно иметь команду cd
.
Я предполагаю, что здесь, как и у меня нет Matlab, так что я не поставил его в качестве официального ответа, но, может быть, попробовать 'систему ('кд где & C: \ SIMPACK ... ') ', который должен позволить ОТДЕЛЬНОМ ПРОЦЕССУ, созданному' system() ', иметь свой собственный отдельный каталог. –
Так просто! Ваше предложение работает хорошо, спасибо. Я также попробую подход Эдрика ниже, но моя проблема на самом деле уже решена. – FliegenderZirkus
Я добавлю его как полноразмерный ответ, так как он работает :-) –