ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

MATLAB の基本クラス

MATLAB® では、さまざまなデータ型や "クラス" を扱うことができます。浮動小数点や整数データ、文字や文字列、論理状態 truefalse をもつ、行列や配列を作成できます。関数ハンドルでは、現在のスコープにかかわらず、コードが MATLAB 関数と関連付けられます。テーブル、構造体およびセル配列を使用すると、同じコンテナーに型の異なるデータを格納できます。

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

次の図では、すべての基本的な MATLAB クラスが説明されています。

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

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

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

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

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

クラス名

ドキュメンテーション

用途

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

  • ネイティブまたは Unicode®

  • 数値への変換や数値からの変換が可能

  • 正規表現で使用

  • 複数の文字列にはセル配列を使用

logical「論理演算」
  • 関係条件や状態のテストに使用

  • trueまたは false のいずれか

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

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

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

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

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

  • Handle Graphics コールバックで便利

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

table「テーブル」
  • 混合型の列方向データ用の四角形コンテナー

  • 行名と変数名でコンテンツを識別

  • Table Properties を使用して変数の単位などのメタデータを格納

  • 要素の扱いは数値配列や論理配列と同様

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

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

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

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

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

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

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

  • 必要なメモリ量が増加

cell「セル配列」
  • さまざまなクラスとサイズの配列を格納

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

  • 要素の扱いは数値配列や論理配列と同様

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

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

  • 必要なメモリ量が増加

詳細

この情報は役に立ちましたか?