もっともシンプルなfor文
前回はグラフの作成について説明しました。
今回はMATLABでfor文を記述する方法をご紹介します。for文とは繰り返しの処理を行う際に用いる構文です。早速とてもシンプルなfor文を実行するところから理解を深めていこうと思います。新規にbasic12.mというスクリプトファイルを作成しましょう。下記コードをペーストして実行してください。
for i=1:10
disp(i);%iをコマンドウインドウに表示
end
上記の画像のようにコマンドウインドウに1~10までの数字が並んでいれば成功です。MATLABでfor文を記述する場合には、1行目の「for i=1:10」という記述と、3行目の「end」という記述をします。1行目の記述の意味は「i」という値を1から10まで変更してループを10回実行するという意味になります。
そしてforとendに挟まれた2行目にdisp(i);と記述されています。dispというのはMATLABの関数で、コマンドウインドウに値を表示するという意味になります。iという数字(1から10まで変更されていく値)がコマンドウインドウに表示されていくため上図のように1~10の値が表示されるという仕組みでした。以上がもっともシンプルなfor文の例になります。
ベクトルを用いたfor文
続いてはfor文に使用する値をベクトルに変更します。
for i=[2 4 6]
disp(i);%iをコマンドウインドウに表示
endiの値を[2 4 6]という行ベクトルに指定しました。すると結果は下記の通りになります。

つまり、for文のindexに代入する値にベクトルを指定すると、1つずつ値を代入して中身を実行してくれます。先ほどの例のようにi=1:10と指定したのは[1 2 3 … 10]という行ベクトルを作成し、iに1つずつ代入してfor文の中身を実行していたということになります。正しくベクトルを指定してあげることがfor文を意図通りに使う近道になります。
値を飛ばしたfor文
意図通りのベクトルを作成できればfor文を自由に使いこなせます。例えば0, 2, 4,…,20のように偶数の時だけ実行するfor文は下記の通りです。
for i=0:2:20
disp(i);%iをコマンドウインドウに表示
end
狙い通りのfor文を実行することができました。
繰り返し計算
続いてはfor文の中で計算を行っていきます。繰り返し行う計算をfor文で記載するととてもシンプルに記述できます。例えば1,2,3,…,1000の和を計算するコードを作成します。
a = 0;
for i=1:1000
a = a + i;
end
disp(a);
上の例では、aの初期値を0として、aにiの値を1から順番に足していっています。3行目の式は数学的には正しくないですが、プログラミングでは左辺に右辺を代入するという意味で「=(イコール)」を使用します。ここではaにa+iを代入するという意味となり、iが1から1000まで加算されていくことを示しています。結果は500500となり正しく計算できていることがわかります。ちなみにMatlabは行列の計算に特化しているため、for文ではなく行列の計算で記述してあげましょう。下記のようにfor文の部分が1行で記載出来ます。
sum(1:1000)これはsumという関数を使ってベクトルの和を計算しています。sumの引数として1000列のベクトルを指定しています。結果はforの例と同様500500となります。
まとめ
以上がfor文の基本的な使い方になります。Matlabでは非常にシンプルにfor文を記述できます。複雑な処理であってもfor文の使い方は変わりませんのでまずは基本の使用方法をしっかりと押さえておきましょう。複数データの処理などの面倒な作業もfor文で一気に処理することも可能になります。効率化のためにもぜひ使い方をマスターしてください。
次回はwhile文について説明します。
コメント