見出し画像

やっと意味の分かったMATLABの配列インデックス

引き続きMATLABの基礎を学び続けている私です。
今日は、やっと意味の分かった「配列インデックス」という考え方をまとめました。


配列インデックスとは

インデックスというのは、個人的な勝手なイメージでいうと「付箋をつけて引っ張り出す」というのを昨日確立しましたが、配列をインデックスするというのは、配列(ベクトルや行列)の中の要素を「付箋をつけて引っ張り出す」という作業になるみたいです。

公式のMATLAB入門のlogical配列>論理インデックスの作成の部分を参考に例を書いてみました。

例えば

V1 = [1 3 5 7 9 10]
というベクトルがあるとします。
配列インデックスは、V1の中で6より大きい要素を抽出したいときに使います。
今回、付箋を貼る基準(=インデックス)が、6より大きいかどうかなので、
V1 >6で、これをインデックスとして使いたいので、小かっこの登場となり、
V1(V1>6)
となるということでした。

()の中身はただの配列インデックスなので、A(B<4)のように、インデックスつけする配列と、インデックスを作る時の配列が異なっても問題なしです。

ちなみにこれは、V1>6として出てくるlogical配列(1 (TRUE) or 0 (FALSE))がを配列インデックスとして使用できるから、インデックスとしてこの条件式をかけるというだけです。

ちなみに、配列インデックスの種類が3種類ある

配列インデックスとして付箋をつける方法は、位置、線形、論理インデックスの3種類あるようです。

位置インデックス

位置は、V1(2)のように、何行目・何列目というのを指定するものです。
これは、この記事の小かっこの使い方ですね。

論理インデックス

最後の論理インデックスが、上で説明したばかりのものなので割愛。

線形インデックス

線形というのは、正直初めて見ましたが、MATLABの特徴を使った方法とのこと。
ここで詳細は書かれていますが、MATLABでは複数行・複数列からなる行列でも、格納するときには1列のデータになっているとのこと。(行の情報は保ちつつ)

この特性を使って、配列インデックスみたいに行と列の情報両方入れなくても、1つだけの情報でいけるよ、とのこと。

大きいデータの合計を出すときに、コロンを2回打たなくてもいけるよ?的な例が出ていますが、使いどころがいまいちよくわかりません。

でも、MATLABの格納方法を知ることができたので良かったです。

MATLABのドキュメントを読んだ時の理解度が深まって、プログラミング「言語」ということが良くわかるようになりました。本当に言語で、前まで英語でアルファベットの上っ面を読んで、英語が出来た気になっていたという感じで、今はようやく単語や文法を覚えたおかげで何を言いたいのかがわかるようになってきたという感覚です。
これは少しおもしろくなってきたかも。わくわく。

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