Programming and Data Types    

データタイプ

MATLABには、14の基本的なデータタイプ(または、クラス)があります。これらのデータタイプの各々は、配列の型をしています。この配列は、サイズの最小なものが0行0列で、任意のサイズのn-次元配列に成長します。これらの配列の2次元バージョンが、行列と呼ばれています。

基本的なデータタイプは、下に示すように、ダイアグラムの下部にユニタリで、小文字のテキストで記述されたいます。また、user classに示されているユーザ定義のデータタイプは、structureタイプのサブセットです。

char データタイプは、ユニコード表現で記述されています。キャラクタ文字列は、単に、キャラクタの1行n列の配列をしています。ユーザは、配列の中の各文字列が同じ長さである場合に、charを使って、文字の配列を作成することができます(これは、MATLAB配列は、長方形でなければならないからです)。長さの等しくない文字列の配列を作成するには、セル配列を使ってください。

Numeric データタイプは、符号付き、符号なしの整数、単精度、倍精度の浮動小数点、倍精度のスパース配列を含んでいます。つぎのものは、MATLABの数値データタイプに対して、適切なものです。

cell 配列は、異なる種類のデータをストレージに保存する手法を提供するものです。同じセル配列のセルの中に、異なるタイプ、サイズの配列をストアすることができます。たとえば、同じセル配列の中のセルに、1行50列のchar配列、7行13列の倍精度配列、1行1列のuint32配列をストアすることができます。ユーザは、他のMATLAB 行列や配列を使って、同じ行列のインデックス手法を使って、セル配列内のデータにアクセスできます(セル配列の詳細は、"構造体とセル配列"のセル配列を参照してください)。

MATLAB のstructure データタイプは、異なる種類のデータを保存するセル配列に似ています。しかし、構造体の場合は、セルの中ではなく、名前を付けたフィールドでデータを保存する点が異なります。ユーザは、構造体の中に保存したデータグループに、名前を使って、アクセスできます。すなわち、フィールド名を使って、構造体の中のデータにアクセスします(構造体の詳細については、"構造体とセル配列"の構造体を参照してください)。

MATLABデータタイプは、クラスとして実現しています。ユーザ自身のMATLABクラスを作成することができます。ユーザ定義のクラスは、MATLAB構造体のクラスから継承し、上のダイアグラムで示すように、構造体のサブセットになります(クラスとオブジェクトの作成に関する情報については、 MATLAB のクラスとオブジェクトを参照してください)。

MATLABは、Javaプログラム言語とインタフェースをもっており、Java classesからオブジェクトを作成したり、これらのオブジェクトのJavaメソッドをコールします。Javaクラスは、MATLABデータタイプです。MATLABインタフェースを通して利用可能な組み込みのクラスやサードパーティのクラスもあります。また、MATLABにユーザ自身のJavaクラスを作成し、取り入れることができます(MATLABでのJavaクラスの使用に関する詳細は、オンラインヘルプの"外部インタフェース/API"のMATLABからJavaをコール を参照してください)

関数ハンドル は、MATLABが計算するために必要な関数に関するすべての情報を含んだMATLABデータタイプです。関数ハンドルは、一般には、引数リストの中のものを他の関数に渡すものです。そして、ターゲット関数を計算するために、fevalコマンドと共に使われるものです(関数ハンドルの詳細は、関数ハンドルを参照してください)。

つぎの表は、データタイプの詳細を記述したものです。

データタイプ
例題
詳細
single
3*10^38
単精度数値配列。単精度は、倍精度より必要なストレージが少なくて済みますが、精度が劣り、レンジも小さくなります。数学的な演算の中では使用することはできません。
double
3*10^300
5+6i
倍精度数値配列(これは、ほとんどすべての MATLAB 変数タイプであります)。
sparse
speye(5)
スパース倍精度行列(2-次元のみ)。スパース行列は、非ゼロ要素の数が非常に少ない行列で、等価なフル行列に対して必要な領域は、非常に少ないものです。スパース行列は、スパース問題を解くために特別に作成した手法を起動します。
int8, uint8, int16, uint16, int32, uint32
uint8(magic(3))
長さ 8ビット、16ビット、32ビットの符号付き、符号なし整数配列。ユーザは、メモリの効率的な使用を考えて、整数量を取り扱うことができます。数学的な操作を行なうことは、できません。
char
'Hello'
キャラクタ配列(各キャラクタは、16ビットです)。また、文字列としても参照します。
cell
{17 'hello' eye(2)}
セル配列。セル配列の各々は、別々の配列から構成されています。セル配列は、異なるサイズの関連したデータや情報を選択します。
structure
a.day = 12;
a.color = 'Red';
a.mat = magic(3);

構造体配列。構造体は、フィールド名をもっています。フィールドは、別々の配列を含みます。セル配列同様に、構造体は、共に、関連したデータや情報を選択します。
user class
inline('sin(x)')
ユーザクラス定義からのMATLABクラス
java class
java.awt.Frame
Java API、または、ユーザクラス定義からのJavaクラス
function handle
@humps
MATLAB関数へのハンドル。引数リストの中から渡すことができ、fevalを使って、計算できます。


  特別な値 キーワード