Main Content

MATLAB 型から COM 型への変換

サーバー関数の引数と戻り値に対するデータ型は、オートメーションのデータ型として表わされ、この型はオートメーションのプロトコルで定義される言語に依存しません。たとえば、BSTR はオートメーション型として定義されたワイド文字列のデータ型であり、文字列を保存するために Visual Basic® 言語で使用されるデータ形式と同じです。これらの型の宣言方法と操作方法の詳細はクライアント固有ですが、COM 準拠クライアントはこれらのデータ型をサポートします。

次の表は、MATLAB® による MATLAB 型から COM 型へのデータ変換を示します。

MATLAB 型最も近い COM のデータ型許容されるデータ型
ハンドルVT_DISPATCH
VT_UNKNOWN
VT_DISPATCH
VT_UNKNOWN
文字ベクトル VT_BSTRVT_LPWSTR
VT_LPSTR
VT_BSTR
VT_FILETIME
VT_ERROR
VT_DECIMAL
VT_CLSID
VT_DATE
int16 VT_I2VT_I2
uint16VT_UI2VT_UI2
int32VT_I4VT_I4
VT_INT
uint32VT_UI4VT_UI4
VT_UINT
int64VT_I8VT_I8
uint64VT_UI8VT_UI8
singleVT_R4VT_R4
double VT_R8VT_R8
VT_CY
logicalVT_BOOL VT_BOOL
char VT_I1VT_I1
VT_UI1

バリアント データ

variant には、構造体またはスパース配列を除く任意のデータ型を指定できます (詳細は、MATLAB の基本クラスを参照してください)。

入力引数として使用される場合、MATLAB は variantvariant(pointer) を同様に扱います。

double 型の空の配列 ([]) を渡すと、MATLAB は VT_EMPTY に設定された variant(pointer) を作成します。その他の数値型の空の配列を渡すことはサポートされていません。

MATLAB 引数最も近い COM のデータ型許容されるデータ型
variant VT_VARIANTVT_VARIANT
VT_USERDEFINED
VT_ARRAY
variant(pointer)VT_VARIANTVT_VARIANT | VT_BYREF

SAFEARRAY データ

COM メソッドが SAFEARRAY または SAFEARRAY(pointer) を同一に扱う場合、MATLAB の等価のデータは行列になります。

MATLAB 引数最も近い COM のデータ型許容されるデータ型
SAFEARRAYVT_SAFEARRAYVT_SAFEARRAY
SAFEARRAY(pointer) VT_SAFEARRAYVT_SAFEARRAY | VT_BYREF

VT_DATE データ型

VT_DATE 型入力を Visual Basic プログラムに渡すには、MATLAB クラス COM.date を使用します。次に例を示します。

d = COM.date(2005,12,21,15,30,05);
get(d)
     Value: 7.3267e+005
    String: '12/21/2005 3:30:05 PM'

関数 now を使用して、Value プロパティに日付値を設定します。

d.Value = now;

COM.date は、datenum と同じ入力引数を受け入れます。

サポートされていないデータ型

MATLAB は以下の COM 型をサポートしません。

  • string 配列

  • 構造体

  • スパース配列

  • 多次元配列 SAFEARRAY (2 次元より高い次元)

  • 書き込み専用プロパティ

参考

関連するトピック