Main Content

MATLAB 関数への .NET データ型の受け渡し

入力引数として .NET データを MATLAB® 関数に渡すと、エンジンは、データを等価の MATLAB データ型に変換します。

次の表は、エンジンがどのように .NET データ型を MATLAB データ型にマッピングするかを示しています。

MATLAB への .NET 数値型の受け渡し

.NET データ型 (スカラー)

結果の MATLAB 型 (スカラー)

System.Double

double

System.Single

single

System.SByte

int8

System.Byte

uint8

System.Int16

int16

System.UInt16

uint16

System.Int32

int32

System.UInt32

uint32

System.Int64

int64

System.UInt64

uint64

System.Boolean

logical

Numerics.Complex

複素数 double
MATLAB では他の数値型の複素数はサポートされていません。

MathWorks.MATLAB.Types.MATLABStruct

struct

.NET データ型 (1 次元ベクトル)

結果の MATLAB データ型 (1 次元ベクトル)

System.Double[]

double

System.Single[]

single

System.SByte[]

int8

System.Byte[]

uint8

System.Int16[]

int16

System.UInt16[]

uint16

System.Int32[]

int32

System.UInt32[]

uint32

System.Int64[]

int64

System.UInt64[]

uint64

System.Boolean[]

logical

Numerics.Complex[]

複素数 double
MATLAB では他の数値型の複素数はサポートされていません。

MathWorks.MATLAB.Types.MATLABStruct[]

struct[]

.NET データ型 (N 次元配列)

結果の MATLAB 型 (N 次元配列)

System.Double[,,...]

double

System.Single[,,...]

single

System.SByte[,,...]

int8

System.Byte[,,...]

uint8

System.Int16[,,...]

int16

System.UInt16[,,...]

uint16

System.Int32[,,...]

int32

System.UInt32[,,...]

uint32

System.Int64[,,...]

int64

System.UInt64[,,...]

uint64

System.Boolean[,,...]

logical

Numerics.Complex[,,...]

複素数 double
MATLAB では他の数値型の複素数はサポートされていません。

MathWorks.MATLAB.Types.MATLABStruct[,,...]

struct[,,...]

定数

結果の MATLAB 値

System.Double.NaN

NaN("double") の結果

System.Single.NaN

NaN("single") の結果

System.Double.PositiveInfinity

Inf("double") の結果

System.Single.PositiveInfinity

Inf("single") の結果

System.Double.NegativeInfinity

-Inf("double") の結果

System.Single.NegativeInfinity

-Inf("single") の結果

メモ

.NET System.Decimal 型はスカラー、ベクトル、または配列の引数ではサポートされていません。

MATLAB への .NET string 型および文字型の受け渡し

.NET データ型 (スカラー)

結果の MATLAB 型 (スカラー)

System.String

string

System.Char

char

ヌルの System.String

string<missing>

.NET データ型 (1 次元ベクトル)

結果の MATLAB データ型 (1 次元ベクトル)

System.String[]

string

System.Char[]

char

.NET データ型 (N 次元配列)

結果の MATLAB 型 (N 次元配列)

System.String[,,...]

string

System.Char[,,...]

char

MATLAB への .NET Dictionary の受け渡し

.NET オブジェクトを MATLAB ディクショナリに変換するときは、次のようになります。

  • オブジェクトのタイプで System.Collections.Generic.IDictionary<TKey,TValue> インターフェイスを厳密に 1 回実装する。

  • 各ディクショナリ エントリのキー (TKey) は、数値型、boolean 型、または string 型でなければならない。

  • 各ディクショナリ エントリの値 (TValue) は、MATLAB 関数への .NET データ型の受け渡しの変換ルールを使用して MATLAB データ型に変換できる。

    結果のディクショナリは有効な MATLAB ディクショナリでなければなりません。たとえば、異種混合でない異なるクラスの値を 2 つ含むディクショナリは無効です。

例については、Use MATLAB Dictionary Objects in .NETを参照してください。

.NET データ型

結果の MATLAB 型

TKeyTValue が MATLAB ディクショナリで変換されたキーと値である場合は System.Collections.Generic.Dictionary<TKey,TValue>

dictionary

キー (TKey) と値 (TValue) の型は次のいずれかの型でなければならず、次のように変換されます。

.NET 型

C# キーワード

結果の MATLAB 型

制限

System.Booleanboollogical

なし

System.SBytesbyteint8

なし

System.Bytebyteuint8

なし

System.Int16shortint16

なし

System.UInt16ushortuint16

なし

System.Int32intint32

なし

System.UInt32uintuint32

なし

System.Int64longint64

なし

System.UInt64ulonguint64

なし

System.Singlefloatsingle

なし

System.Doubledoubledouble

なし

System.Charcharstring

なし

System.Stringstringstring

なし

MathWorks.MATLAB.Types.MATLABObject

なし

値クラスまたはハンドル クラス

キーとしてはサポートされない

MathWorks.MATLAB.Types.MATLABStruct

なし

struct

System.Objectobject

cell

MATLAB への .NET System.Object の受け渡し

.NET データ型

結果の MATLAB 型

System.Object[]

1 次元 cell ベクトル

System.Object[,,...]

N 次元 cell 配列

MATLAB への .NET ハンドルおよび値オブジェクトの受け渡し

.NET オブジェクト型結果の MATLAB 型

MathWorks.MATLAB.Types.MATLABObject

基となる MATLAB 型のスカラー

MathWorks.MATLAB.Types.MATLABObject[]

基となる MATLAB 型の 1 次元ベクトル

MathWorks.MATLAB.Types.MATLABObject[,,...]

基となる MATLAB 型の N 次元配列

関連するトピック