Main Content

MATLAB の基本クラス

MATLAB® では、さまざまなデータ型または "クラス" を扱うことができます。浮動小数点データと整数データ、文字と string、logical true 値と false 値などからなる行列および配列を作成できます。関数ハンドルでは、現在のスコープにかかわらず、コードが MATLAB 関数と関連付けられます。table、timetable、構造体および cell 配列を使用すると、同じコンテナーに異なる型のデータを格納できます。

MATLAB には、17 の基本クラスがあります。各クラスは、行列または配列で構成されます。関数ハンドルと table を例外として、こうした行列または配列は最小で 0 行 0 列であり、任意のサイズの "n" 次元配列にまで拡張できます。関数ハンドルは常にスカラー (1 行 1 列) です。table は常に "m" 個の行と "n" 個の変数をもち、m >= 0、n >= 0 です。

基本的な MATLAB クラスを図に示します。

The fundamental MATLAB classes are the logical, string, char, table, cell, struct, and function handle classes, as well as the numeric classes of single, double, int8, int16, int32, int64, uint8, uint16, uint32, and uint64.

MATLAB ソフトウェアの数値クラスには、符号付き整数と符号なし整数および単精度浮動小数点数と倍精度浮動小数点数が含まれています。既定の設定により、MATLAB ではすべての数値が倍精度浮動小数点として格納されます (既定の型と精度を変更することはできません)。任意の数値または数値配列を、整数あるいは単精度浮動小数点として格納するように選択することができます。整数および単精度配列は、倍精度配列よりも効率的にメモリを使用します。

すべての数値型で、添字、変形、数学などの基本的な配列演算がサポートされています。

full または sparse の記憶形式のいずれかを使用して、2 次元の double および logical 行列を作成することができます。ほとんどがゼロ値の行列の場合、スパース行列で必要な格納領域は、等価な非スパース行列よりもずっと少なくて済みます。スパース行列は、専用のメソッドを呼び出してスパースな問題を解きます。

これらのクラスでは、必要な格納領域の量が異なります。必要な格納領域が最小のものは logical 値または 8 ビットの整数で、わずか 1 バイトで済みます。8 ビットよりも小さな精度を使用して記述されたファイル内のデータを扱う場合は、最小のサイズを覚えておくことが重要です。

すべての変数が数値データ型であれば、table と timetable でも数学演算がサポートされます。詳細については、table および timetable での直接計算を参照してください。 (R2023a 以降)

次の表では、基本クラスについて詳細に説明します。

クラス名

ドキュメンテーション

用途

double, single浮動小数点数
int8, uint8, int16, uint16, int32, uint32, int64, uint64整数
string, char文字と文字列
  • テキストのデータ型。

  • どちらのデータ型も文字を Unicode® 文字として格納。

  • 数値表現への変換および数値表現からの変換をサポート。

  • 正規表現では、このどちらかのデータ型を使用。

  • 文字列内のテキストの検索および照合には pattern オブジェクトを使用。 (R2020b 以降)

  • 複数の string の格納には string 配列を使用。複数の文字ベクトルを cell 配列に格納することも可能です。ただし、テキストの格納方法として推奨されているのは string 配列を使用することです。

logical論理 (boolean) 演算
  • 関係条件や状態のテストに使用。

  • true または false のいずれか。

  • 配列インデックス付けにも便利。

  • 2 次元配列はスパース配列にすることが可能。

function_handle関数ハンドル
  • 関数を指すポインター。

  • 関数を他の関数に渡すことが可能。

  • 通常のスコープ外にある関数の呼び出しが可能。

  • グラフィックス コールバック関数の指定に使用。

  • MAT ファイルに保存して、復元可能。

table, timetabletable, timetable
  • table および timetable は混合型の列方向データ用の四角形コンテナー。

  • table には内容を識別する行名と変数名が含まれる。

  • timetable は行がタイムスタンプによってラベル付けされている table 内の時系列データ用のストレージも提供。timetable 関数は、タイムスタンプ付きのデータの同期、リサンプリング、または集約が可能です。

  • 変数単位などのメタデータの格納に table または timetable のプロパティを使用。

  • 要素の扱いは数値配列や logical 配列と同様。

  • 数値インデックスまたは名前付きインデックスでデータにアクセス。

  • データのサブセットを選択してテーブル コンテナーを保存するか、データをテーブルから抽出することが可能。

struct構造体
  • フィールドは、さまざまなクラスとサイズをもつ配列を格納。

  • 単一の操作で、1 つまたはすべてのフィールド/インデックスにアクセス。

  • フィールド名でコンテンツを識別。

  • 関数引数を渡すための手法。

  • コンマ区切りリストで使用。

  • 必要なメモリ量が増加

cellcell 配列
  • さまざまなクラスとサイズの配列を格納。

  • 必要に応じてデータをまとめることが可能。

  • 要素の扱いは数値配列や logical 配列と同様。

  • 関数引数を渡すための手法。

  • コンマ区切りリストで使用。

  • 必要なメモリ量が増加

関連するトピック

外部の Web サイト