見出し画像

ごちゃごちゃになりやすいMATLAB記号ver.

人生で初めて触ったプログラミング言語がMATLABの来世はクジラです。やはり何事も基礎が重要ということを再認識して、学習をぼちぼち続けています。今回は、記号編です。


()と【】何が違うの?

これもプログラミング言語が違うと意味が異なる用語というか、記号というか、の代表例のような気がします。
何もわからずに使っていると、どのときにどのかっこを使ったらよいのかがわからず、ここで変に時間を持て余してしまいかねないです(ちょっと前までの私は大いに持て余していました)。こんな私みたいにならないように、また時間を持て余さないように備忘録です。

【】(別名:大かっこ、ブラケット)

用途:配列の作成や連結、空行列の作成、配列要素の削除、関数によって返された値の取得が可能。

つまり:行列やベクトルなどを新たに作成するときに使う。

() (別名:小かっこ)

用途:演算の優先順位を指定したり、関数の入力引数を囲んだり、配列にインデックスをつける。

つまり:3つの用途がある。

  1. 優先順位:小学校の算数で習う計算式の()と同じ(掛け算の前に足し算をするとか)。

  2. 関数の入力引数:plotなどの関数で、xを何?yは何?色は?みたいな関数の条件を当てはめる用。

  3. インデックス:上の大かっこで作った配列のm行目のn列目の要素を抜き出すとかいうときに使う。


なるほど!インデックスの時には()しか使わないということ。
私が以前疑問に思っていたことがあって、それを例にしてみてみます。

小かっこの登場場面

V = 0:2:10
というベクトルがあるとします。
(初期値:刻み値:最終値なので、0:2:10というのは、0, 2, 4, 6, 8, 10という中身からなるベクトルです。)

このVのうち、1番目、2番目、5番目を抜き出したいとします。
その時に使うカッコはどちら?

はい、配列(ベクトル)をインデックス付け(付箋つけて持ってくるようなイメージ)をしたいので、()の小かっこです。
が、【】の大かっこも使います。

、ということで、
V([1 2 5])
が正解です。

今回抜き出したい場所(1番目、2番目、5番目)は、コロンなどを使ってベクトルにせずに、1と2と5番目と直接インデックスつけしたほうが早いパターンです。
そのときには、1番目、2番目、5番目というベクトルを作って、Vの要素を抜き出す必要があるので、初めてベクトルを作るときには、【】で、【1 2 5】。これで作ったベクトルでインデックスづけをするので、(【1 2 5】)となります。

何もわかっていなかった時の私の疑問

V[1 2 5]ではなぜ抽出できないのか、ということでした。
それはその通りで、ベクトルを作ってもインデックスつけてねという指示がなければ、MATLABも動けないのは当然。エラーが出て当たり前だったということでした。

ふー、すっきりした!と思った矢先

もう一つカッコの種類があることに気が付きました。
{} 中カッコがあったではないですか。
まだテキストで出てきていないので、予習になるので軽く触れておくと、

用途:cell配列を作成したり、cell配列内の特定のセルの内容にアクセスする。

つまり:cell御用達カッコさんで、cellの場合は、インデックスの時にも小かっこじゃなく、中カッコを使う。

ということでした。
おっと、cellってなんだっけ。すぐに説明できないということで、要復習。

この記事が気に入ったらサポートをしてみませんか?