ごちゃごちゃになりやすいMATLAB記号ver.
人生で初めて触ったプログラミング言語がMATLABの来世はクジラです。やはり何事も基礎が重要ということを再認識して、学習をぼちぼち続けています。今回は、記号編です。
()と【】何が違うの?
これもプログラミング言語が違うと意味が異なる用語というか、記号というか、の代表例のような気がします。
何もわからずに使っていると、どのときにどのかっこを使ったらよいのかがわからず、ここで変に時間を持て余してしまいかねないです(ちょっと前までの私は大いに持て余していました)。こんな私みたいにならないように、また時間を持て余さないように備忘録です。
【】(別名:大かっこ、ブラケット)
用途:配列の作成や連結、空行列の作成、配列要素の削除、関数によって返された値の取得が可能。
つまり:行列やベクトルなどを新たに作成するときに使う。
() (別名:小かっこ)
用途:演算の優先順位を指定したり、関数の入力引数を囲んだり、配列にインデックスをつける。
つまり:3つの用途がある。
優先順位:小学校の算数で習う計算式の()と同じ(掛け算の前に足し算をするとか)。
関数の入力引数:plotなどの関数で、xを何?yは何?色は?みたいな関数の条件を当てはめる用。
インデックス:上の大かっこで作った配列の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ってなんだっけ。すぐに説明できないということで、要復習。
この記事が気に入ったらサポートをしてみませんか?