チートシート

MATLAB でのデータの整理とアクセス

本リファレンスでは、よくあるユースケースを紹介していますが、すべてを網羅しているわけではありません。

データ表現
同種
データ型 アイコン 目的 構文
Double、single、(u)int8、(u)int16、(u)int32、(u)int64、complex
double、single、complex
数値配列、行列計算、数学 [1,2,3], [1;2;3], uint8(), int16()
String
文字列
テキスト配列 "hello world"
Char
Char
単一の文字、文字配列 'hello'
Categorical
Categorical
非数値の離散データ categorical()
Datetime
Datetime
絶対日付とタイムスタンプ (タイムゾーンを含む) datetime('July 12, 2001 08:15:01')
Duration
期間
経過時間 duration(h,m,s), hours(), minutes()
カレンダー期間
カレンダー期間
カレンダーに基づく相対時間 caldays(), calweeks()
Logical
Logical
true/false、テスト状態、条件に基づくデータの識別 logical(), ==, ~=, >, >=, <, <=, &, &&, |, ||
その他の特殊な型
その他の特殊な型
sparse、enumeration、custom など » ドキュメンテーション
異種
データ型 アイコン 目的 構文
Table
テーブル
型が混在する列指向データ (スプレッドシートに似た形式)。
メタデータの格納
table(x,y,z), array2table
Timetable
Timetable
タイムスタンプ付き表形式データ timetable(t,x,y) table2timetable,array2timetable
構造体
構造体
フィールドには任意のサイズと型のデータを格納可能。非矩形データに最適。 struct()
cell 配列
cell 配列
配列内の各 cell が任意のデータ型とサイズを格納可能 cell(), {pi,ones(5), "hello"}
tall 配列
tall 配列
データがメモリに収まらない場合、MATLAB のデータ型を "tall" にすることが可能 ds = datastore(), T = tall(ds)
Dictionary
Dictionary
一意のキーを値にマッピングするオブジェクト d = dictionary(keys,values)
データ選択
配列のインデックス付けを使用してデータを選択します。  
1D 配列の線形インデックス付け:
X(1) 最初の要素
X(end) 最後の要素
 
 
 
多次元配列における行、列のインデックス付け:
A(1,2)
A(1,1,2)
   
   
ベクトルを使用して複数選択:
A([1,3],1)
   
   
   
コロン (:) を使用して範囲を選択:
A(1:3,1)
A(:,1) すべての行、列 1
A(1,:)行 1、すべての列
A(1:2:end,:)1 行おき
   
   
   
配列からデータを削除:
A(1,:) = [];
論理インデックス付け

論理式を使用してデータを選択

7 より大きい X の要素:
Y = X(X > 7)

条件の組み合わせ
X(X > 3 & X <= 7)
X(X > 3 | X <= 7)

多次元配列
条件を使用して行または列を特定:
idx = X > 7;
X(idx, :)

table と timetable
T(:,vartype('numeric'))
TT(timerange(t1,t2),:)

コンテナーのインデックス付け
インデックス付けの際にかっこ () を使用すると、元のデータ型が維持されます。基礎となるデータにアクセスするには、中かっこ {} を使用します。table と構造体では、名前でデータを参照することもできます。

» 例

型 サブセット 内容
Table table を返す:T(1,2)
T(:,"A")
T(:,["A","B"])
基礎となるデータを返す:
T{1,2}
T{:,"A"} T.A

T.Rows
T.Variables
Timetable 上と同様:
TT("Apr 1,...2004",5)
上と同様:
TT.Time
cell 配列 cell を返す:
C(1,2)
C{1,2}
C{:} -> コンマ区切りリスト
構造体 struct を返す:
S(1,1)
S.Field