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