ツイッターはこちら

MATLABでのfor文による繰り返し処理【for, break, continue】

2 min

今回は、MATLABでのfor文の書き方について解説します。

for文を使うことにより、決められた回数だけ処理を繰り返すことができます。

MathWorksのサイトの説明がわかりにくいという方は、是非こちらを参考にしてください。

この記事を読む価値

MATLABでfor文を使いこなせるようになる。

for文の基本的な書き方

画像に alt 属性が指定されていません。ファイル名: dccc718f7e06da1cf3ba5ea21b97e8a8-1-740x164.png
for i=初期値:最終値
     %実行文
end

MATLABでのfor文の基本構文は以上のようになります。

アルゴリズム

iに初期値から最終値までの数値を1ずつ増加させながら代入し、実行文を繰り返す

例文【for】

それでは例文を紹介します。

半径1、2、3、4、5cmの円の面積を求める。

コードは以下のようになります。

画像に alt 属性が指定されていません。ファイル名: 524bbb44b7c3deb85efd7019f75e9ccd-740x160.png
for i=1:5
     S = pi*i^2
end

これを実行すると、

画像に alt 属性が指定されていません。ファイル名: 9da3e8a0e41d0687f1be43a38a9c6ec1-740x272.png

1〜5を代入した円の面積が算出されました。

それではもう一つ例文を紹介します。今度はfor文を用いて、配列の要素を一つずつ取り出します。

麦わらの一味のメンバーの要素を一つずつ取り出す。

コードは以下のようになります。

画像に alt 属性が指定されていません。ファイル名: 1df99167aed9b1cb54c06542e2980af9-740x205.png
mugiwara_no_ichimi = {['ルフィ','ゾロ','ナミ','ウソップ' ,...
    'サンジ','チョッパー','ロビン','フランキー','ブルック']}
for i=1:9
    mugiwara_no_ichimi(i)
end
 

これを実行すると、

画像に alt 属性が指定されていません。ファイル名: 85d723afa931fc8d8b31f54917982416-740x579.png

麦わらの一味のメンバーひとりひとりの名前が出力されました。

以上のようにfor文は、繰り返し処理をすることができます。

for文の書き方【指定した増減値で繰り返し処理】

for文は以下のように書くことで、増減値を指定することができます。

画像に alt 属性が指定されていません。ファイル名: f5e451a67a3d9a369fe9c1c0fb13fef4-740x159.png
for i=初期値:増減値:最終値
    %実行文
end
アルゴリズム

指定した増減でiに初期値から最終値まで数値を代入し、実行文を繰り返す

例文【指定した増減値で繰り返し処理】

それでは例文を紹介します。

y=x^2にxに1から0までを0.1ずつ減少させながら代入する。

コードは以下のようになります。

画像に alt 属性が指定されていません。ファイル名: 8ec8b2c568d81ad35f2d212295df4019-740x157.png
for x=1:-0.1:0
     y = x^2
end

これを実行すると、

画像に alt 属性が指定されていません。ファイル名: 5a1bb6019a2e286dd73f47d8a825de2d-740x418.png

xに1, 0.8, 0.6, 0.4, 0.2, 0を代入したyの値が得られました。

このようにfor文は、増減の刻み幅を指定して繰り返し処理をすることができます。

for文の書き方【指定した値で繰り返し処理】

for文は、以下のように書くことで指定した値で繰り返し処理をすることができます。 

画像に alt 属性が指定されていません。ファイル名: eee8a83362b1a2c217e4ce7b041c7c26-740x155.png
for i=[数値1 数値2 数値3 数値4]
     i
end
アルゴリズム

数値1、数値2、数値3、数値4を代入し、実行文を繰り返す

例文【指定した値で繰り返し処理】

それでは例文を紹介します。

10以下の素数の平方根を計算する。

するとコードは以下のようになります。

画像に alt 属性が指定されていません。ファイル名: 8d6110a00dcf99bcc86d4aebcc42503f-740x157.png
for i=[2 3 5 7]
     i^(1/2)
end
 

これを実行すると、

画像に alt 属性が指定されていません。ファイル名: c14df711121553c8a5231056c114d596-740x251.png

10以下の素数の平方根が得られました。

以上のように、for文は指定した数値で繰り返し処理をすることもできます。

breakを用いてfor文を中断させる

指定した条件を満たした場合に繰り返し処理を止めたいというときは、breakを使いましょう。

例文を以下に示します。

iに1から10を代入し、i=7で処理を止める。

画像に alt 属性が指定されていません。ファイル名: abcc98cc950d24d58b50af9c0aaba452-740x221.png
for i=[2 3 5 7]
     i^(1/2)
end
 

では、実行してみます。

画像に alt 属性が指定されていません。ファイル名: b3baaa612ed49414da0d2083db944cf6-740x379.png

i=6までは代入されましたが、i=7以降は代入されませんでした。

このようにbreakはif文と組み合わせることで、指定した条件でfor文を中断させることができます。

if文がわからないという方は、以下の記事を参考にしてみてくださいね。

continueを用いたfor文のスキップ【continue】

指定した条件をスキップしたいというときは、continueを使いましょう。

例文を以下に示します。

3の倍数のみスキップして1から10をiに代入する。

画像に alt 属性が指定されていません。ファイル名: 7f6c63daaf56d948cdf8d5b06bb8e4e7-740x223.png
for i=1:10
    if mod(i,3)==0 %3で割った余りが0のときtrue
        continue
    end
    i
end

これを実行すると、

画像に alt 属性が指定されていません。ファイル名: 439118215a291b1b5fbe68d2b222804f-740x390.png

3の倍数のみを飛ばして、1から10までの値をiに代入できました。

このように、continueをif文と組み合わせると指定した条件を飛ばして、処理を続けることができます。

今回は以上となります。

フルショ

フルショ

2019年春に理系大学院を卒業して、大手メーカーに勤める25歳です!
海外ノマドにあこがれて、会社に頼らない生き方を現在模索中。

FOLLOW

カテゴリー:
関連記事