Matlabを通じてさまざまな入力を求める 'cmd'プロンプトでWindowsの '.exe'ファイルを実行しています。コマンドは次のとおりです。Matlabを使用した並列計算
for i = 1:n
filename = sprintf('input_%d.dat',i);
string = sprintf('!sfbox.exe %s', filename);
eval(string)
end
すべての入力ファイルは存在し、互いに独立しています。私はエラーを取得しますが、コードは
Explanation
MATLAB runs parfor loops on multiple MATLAB workers that have
multiple workspaces. The indicated function might not access the
correct workspace; therefore, its usage is invalid.
を停止することなく連続的に実行
parfor i = 1:n
filename = sprintf('input_%d.dat',i);
string = sprintf('!sfbox.exe %s', filename);
eval(string)
end
、次のように「のparfor」を使用して、実行を並列化しようとした場合でも、evalのを実行するための正しい方法はありますparforを使って?
(PS:cmdプロンプトでいくつかの.exeファイルを手動で実行しようとしましたが、コマンドプロンプトで複数の.exeファイルを同時に実行することができます)問題はMatlabでやってみる方法です。メソッド)。
あなたは正しいです。私は 'system'を直接使っていたはずです。できます。開発中の 'system'コマンドで直面した問題のために私は' eval'を使用していました。 –