MATLAB 型から COM 型への変換
サーバー関数の引数と戻り値に対するデータ型は、オートメーションのデータ型として表わされ、この型はオートメーションのプロトコルで定義される言語に依存しません。たとえば、BSTR はオートメーション型として定義されたワイド文字列の string 型であり、文字列を保存するために Visual Basic® 言語で使用されるデータ形式と同じです。これらの型の宣言方法と操作方法の詳細はクライアント固有ですが、COM 準拠クライアントはこれらのデータ型をサポートします。
次の表は、MATLAB® による MATLAB 型から COM 型へのデータ変換を示します。
| MATLAB 型 | 最も近い COM のデータ型 | 許容されるデータ型 |
|---|---|---|
| ハンドル | VT_DISPATCHVT_UNKNOWN | VT_DISPATCHVT_UNKNOWN |
| 文字ベクトル | VT_BSTR | VT_LPWSTRVT_LPSTRVT_BSTRVT_FILETIMEVT_ERRORVT_DECIMALVT_CLSIDVT_DATE |
int16 | VT_I2 | VT_I2 |
uint16 | VT_UI2 | VT_UI2 |
int32 | VT_I4 | VT_I4VT_INT |
uint32 | VT_UI4 | VT_UI4VT_UINT |
int64 | VT_I8 | VT_I8 |
uint64 | VT_UI8 | VT_UI8 |
single | VT_R4 | VT_R4 |
double | VT_R8 | VT_R8VT_CY |
logical | VT_BOOL | VT_BOOL |
| char | VT_I1 | VT_I1VT_UI1 |
バリアント データ
variant には、構造体またはスパース配列を除く任意のデータ型を指定できます (詳細については、MATLAB の基本クラスを参照してください。)
入力引数として使用される場合、MATLAB は variant と variant( を同様に扱います。pointer)
double 型の空の配列 ([]) を渡すと、MATLAB は VT_EMPTY に設定された variant( を作成します。その他の数値型の空の配列を渡すことはサポートされていません。pointer)
| MATLAB 引数 | 最も近い COM のデータ型 | 許容されるデータ型 |
|---|---|---|
variant | VT_VARIANT | VT_VARIANTVT_USERDEFINEDVT_ARRAY |
variant( | VT_VARIANT | VT_VARIANT | VT_BYREF |
SAFEARRAY データ
COM メソッドが SAFEARRAY または SAFEARRAY(pointer) を同一に扱う場合、MATLAB の等価のデータは行列になります。
| MATLAB 引数 | 最も近い COM のデータ型 | 許容されるデータ型 |
|---|---|---|
SAFEARRAY | VT_SAFEARRAY | VT_SAFEARRAY |
SAFEARRAY(pointer) | VT_SAFEARRAY | VT_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 次元より高い次元)書き込み専用プロパティ