13.2 判定分岐 タスク1 doPlot が 1 の場合にのみの条件の設定について

10 ビュー (過去 30 日間)
佳奈子 浜口
佳奈子 浜口 2021 年 6 月 14 日
回答済み: Atsushi Ueno 2021 年 6 月 14 日
if ブロックの本体は、条件が true の場合にのみ実行されます。
doPlot1 の場合にのみプロット用コードの 4 ~ 7 行目が実行されるように、スクリプトを変更します。
こちらの問題の解答がif doPlot=1 ではなく if doPlot になるのは何故でしょうか?
解答
if doPlot
%% <プロット コード>;
end

採用された回答

Atsushi Ueno
Atsushi Ueno 2021 年 6 月 14 日
>こちらの問題の解答がif doPlot=1 ではなく if doPlot になるのは何故でしょうか?
【回答】"if doPlot==1"でも"if doPlot"でも文法的に正しく、同じ意味になるからです。
    但し"if doPlot=1"は文法エラーです。"=="は「比較」の意味、"="は「代入」の意味だからです。
【詳細】doPlotは下記の通り0または1をランダムに設定します。
doPlot = randi([0 1])
"doPlot==1"を式として評価すると、doPlotが1の時:真(true)、doPlotが0の時:偽(false)となります。
"doPlot"を式として評価すると、doPlotが非ゼロの時:真(true)、doPlotがゼロの時:偽(false)になります。
つまりdoPlotが0か1の値を取る場合は、"if doPlot==1"でも"if doPlot"でも文法的に正しく、結果は同じです。
>if expression, statements, end は、を評価し、式が真 (true) であるときに一連のステートメントを実行します。結果が空でなく、非ゼロの要素 (論理値または実数値) のみが含まれる場合に、式は true になります。それ以外の場合は、false です。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeInterpolation of 2-D Selections in 3-D Grids についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!