1. ホーム
  2. matlab

[解決済み] Matlabでループ中にコマンドウィンドウに出力を最適化する方法は?

2022-03-10 05:57:59

質問

私は、与えられたストレス値と対になるID番号のリストを反復するループを持っています。コードは問題なく動作しますが、リストの長さが同じである保証はありません。現在 if isempty(stress_value) ループに continue という文があり、ID番号に対応するストレス値がない場合は これらの処理はすべて for id = 1:num_ids のループになります。

私は今、これを印刷しようとしています。 id の値 (クラス 'double') をコマンドラインに出力します。 isempty ステートメントがTrueの場合、ループを抜ける前に。例として、もし私が num_ids は101に等しいが、反復処理中のリストには1~100のID値しかないため、この101のIDをコマンドラインに出力したい。

このようにエラーとして出力してみました。

error(['The following ID does not have an assigned stress value: ',id])

ここで id と表示されます。 e しかし、これをコマンドウィンドウで試すと、よくわからないことになります。スクリプトで実行しても、コマンド・ウィンドウには何も出力されません。

また、以下のように単純にidの表示コマンドをループに追加してみましたが、このコードを実行してもまた何も表示されません。

disp(id)

素朴な質問で申し訳ないのですが、まだ効果的な方法が見つかっていませんので、ご意見をお聞かせください

どのように解決するのですか?

を確認します。 fprintf . 好きなように出力をフォーマットすることができます。

for id=1:num_ids
    % do something
    if isempty(stress_value)
        fprintf('The following ID does not have an assigned stress value: %d\n',id)
        continue
    end
    % do something
end

エラー 関数はコードの実行を停止します。

は、その 表示 関数は変数の値のみを表示し、変数名は表示しません。