1|2条件により実行を変えるifコマンド、switchコマンドは、条件により実行を変えたい場合に用います。ifは、2方向への分岐で条件を満足する場合、ifの次の行を実行し、満足しない場合は、else以下の行を実行します。switchコマンドは、多方向に分岐できます。分岐の条件は、caseの後に記述し、条件を満足したcase以下の行を実行します。ifコマンドifコマンドは基本となるコマンドなので、FreeMatのヘルプ記述をそのまま下記に示します。MATLAB).意味は、「ifとelseは記述された条件により処理をコントロールします。一般的な書式は、if文と、その後に複数のelseif文が続き、最後にelse文で構成されます。条件書式の実数部が0でなければ、trueと見なします。これは、MATLABの仕様に合わせたため」となります。ifコマンドやelseifコマンドはその後に続く変数、論理式の結果が0でなければ、trueと見なし、ifコマンドに続く行を実行しifコマンドを終了します。0であれば、ifコマンドに続く行を無視し、その次の行に移動します。この際、ifコマンドの後ろには行列でも複素数でも対応し、その際は、全て実数部が0でない要素であれば、trueと見なします。この実数部で評価するのはMATLABの仕様にならっていると言っています。non-zero」と表示されます。zero」と表示されます。zero');endex301.m>>「ex301.m」ダウンロード一般に、ifコマンドの後には、論理式(論理式は式を満足する場合はtrueとして1を、満足しない場合はfalseとして0を返します)、例えば、x>1などが使われますが、計算結果や行列を使うことも可能です。switchコマンドswitchコマンドも基本となるコマンドなので、ヘルプの記述をそのまま下記に示します。executed.意味は、「switchコマンドは数値あるいは文字列に基づいて処理を選択します。otherwiseはなくとも構いません。C言語とは異なり、FreeMatのswitchは、フォールスルーしません。条件に該当するcaseでは処理を実行した後、その後のcaseやotherwiseを飛ばしてend行まで移動します。そのため、複数のcaseを満足する場合は、最初に条件を満足したcaseのみが実行されます」となります。「フォールスルー」とはcaseに該当してもしなくても、「全てのcaseで該当するか」をチェックすることです。C言語では、余分なcaseチェックを省くため、それぞれのcaseの最後にbreakコマンドを入れ、フォールスルーを行わせない工夫が必要です。例として、ex302.mを動作させると、文字列変数d='rice'をcaseにあるセル配列と比較します。foodと表示されます。この場合、3番目のcaseにも'rice'が含まれていますが、最初のcaseを満たしたため、その後のcaseやotherwiseは実行されずにendまで移動しています。次回は「forコマンド」について説明します。(いとう・たかひろ)1960年生。小型モーターメーカーのエンジニア。