質問: dlmread('query.csv'))を使って計算を実行 これをループしています。 この2つのファイルが並行して計算を実行しているのですが、たまにエラーが起きてストップします。 どうも、aaa.mからquery.csvファイルができて、データが書き込まれるよりも早いタイミングで bbb.mがquery.csvファイルのデータをコピーに行くために、query.csv中にデータがなくて 止まってしまっているようです。 (ファイルの末尾に空の形式文字ベクトルを使用することはできません, のメッセージあり) 回避する手段として、aaa.mによるquery.csvのデータ書き込みが終了した時点でフラグを立てるか何かして、 そのフラグを見てbbb.mがquery.csvのデータを読みに行くようにしたいと考えていますが、 やり方がわかりません。 何か良い方法はないでしょうか。
回答: 根本的な解決策ではないですが、例えば flag = true; while flag try %「bbb.mがquery.csvファイルのデータをコピーに行く」に、query.csv中にデータがなくてエラー catch me flag = true; end flag = false; end と try/catch の構文で、エラーがでずに bbb.m が実行できるまで while ループで回すという方法はいかがでしょう。 それでも「エラーは出ないが、意図している結果にならない」=「データ書き込みが中途半端」である可能性も残りますね。書き込みが完了したときのデータ量が事前に把握できていれば、その情報を使って成否を判断するのはどうでしょう。