for文 | MATLAB基礎12

もっともシンプルなfor文

前回はグラフの作成について説明しました。

今回はMATLABでfor文を記述する方法をご紹介します。for文とは繰り返しの処理を行う際に用いる構文です。早速とてもシンプルなfor文を実行するところから理解を深めていこうと思います。新規にbasic12.mというスクリプトファイルを作成しましょう。下記コードをペーストして実行してください。

MATLAB
for i=1:10
    disp(i);%iをコマンドウインドウに表示
end
for 実行結果

上記の画像のようにコマンドウインドウに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文に使用する値をベクトルに変更します。

MATLAB
for i=[2 4 6]
    disp(i);%iをコマンドウインドウに表示
end

iの値を[2 4 6]という行ベクトルに指定しました。すると結果は下記の通りになります。

for 行ベクトル

つまり、for文のindexに代入する値にベクトルを指定すると、1つずつ値を代入して中身を実行してくれます。先ほどの例のようにi=1:10と指定したのは[1 2 3 … 10]という行ベクトルを作成し、iに1つずつ代入してfor文の中身を実行していたということになります。正しくベクトルを指定してあげることがfor文を意図通りに使う近道になります。

値を飛ばしたfor文

意図通りのベクトルを作成できればfor文を自由に使いこなせます。例えば0, 2, 4,…,20のように偶数の時だけ実行するfor文は下記の通りです。

MATLAB
for i=0:2:20
    disp(i);%iをコマンドウインドウに表示
end
[0 2 4 … 20]のベクトルを作成できればいいので、「:(コロン)」を使って2ずつ値を大きくしていくことが可能です。「:(コロン)」を使ったベクトルの作成方法は、ベクトルの操作 | MATLAB基礎5で紹介しました。実行結果は下記の通りです。

for 偶数のみ

狙い通りのfor文を実行することができました。

繰り返し計算

続いてはfor文の中で計算を行っていきます。繰り返し行う計算をfor文で記載するととてもシンプルに記述できます。例えば1,2,3,…,1000の和を計算するコードを作成します。

MATLAB
a = 0;
for i=1:1000
    a = a + i;
end
disp(a);
for 繰り返し計算

上の例では、aの初期値を0として、aにiの値を1から順番に足していっています。3行目の式は数学的には正しくないですが、プログラミングでは左辺に右辺を代入するという意味で「=(イコール)」を使用します。ここではaにa+iを代入するという意味となり、iが1から1000まで加算されていくことを示しています。結果は500500となり正しく計算できていることがわかります。ちなみにMatlabは行列の計算に特化しているため、for文ではなく行列の計算で記述してあげましょう。下記のようにfor文の部分が1行で記載出来ます。

MATLAB
sum(1:1000)

これはsumという関数を使ってベクトルの和を計算しています。sumの引数として1000列のベクトルを指定しています。結果はforの例と同様500500となります。

まとめ

以上がfor文の基本的な使い方になります。Matlabでは非常にシンプルにfor文を記述できます。複雑な処理であってもfor文の使い方は変わりませんのでまずは基本の使用方法をしっかりと押さえておきましょう。複数データの処理などの面倒な作業もfor文で一気に処理することも可能になります。効率化のためにもぜひ使い方をマスターしてください。

次回はwhile文について説明します。

関連記事

コメント

この記事へのコメントはありません。