最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
MATLAB® は自動的にデータを .NET オブジェクトから以下の MATLAB 型に変換します。これらの値はメソッド シグネチャに表示されます。
C# .NET 型 | MATLAB 型 |
---|---|
System.Int16 | int16 スカラー |
System.UInt16 | uint16 スカラー |
System.Int32 | int32 スカラー |
System.UInt32 | uint32 スカラー |
System.Int64 | int64 スカラー |
System.UInt64 | uint64 スカラー |
System.Single | single スカラー |
System.Double | double スカラー |
System.Boolean | logical スカラー |
System.Byte | uint8 スカラー |
System.Enum | enum |
System.Char | char |
System.Decimal | System.Decimal |
System.Object | System.Object |
System.IntPtr | System.IntPtr |
System.UIntPtr | System.UIntPtr |
System.String | System.String |
System.Nullable<ValueType> | System.Nullable<ValueType> |
System.Array | .NET アプリケーションによる配列の使用を参照してください。 |
System.__ComObject | MATLAB による System.__ComObject の処理方法を参照してください。 |
class name | class name |
struct name | struct name |
.NET 配列の要素を、等価な MATLAB 配列に変換するには、以下の MATLAB 関数を呼び出します。例については、MATLAB 配列へのプリミティブ .NET 型配列の変換を参照してください。
System.String
オブジェクトを MATLAB string に変換するには、関数 string
を使用します。System.String
オブジェクトを MATLAB 文字配列に変換するには、関数 char
を使用します。以下に例を示します。
str = System.String('create a System.String');
mlstr = string(str)
mlchar = char(str)
mlstr = "create a System.String" mlchar = 'create a System.String'
MATLAB には、標準オブジェクトが表示される代わりに、System.String
オブジェクトの文字列の値が表示されます。たとえば、次のように入力します。
a = System.String('test') b = System.String.Concat(a,' hello',' world')
a = test b = test hello world
System.String
クラスは、引数を取る .NET プロパティの呼び出しで説明されているように、MATLAB でのフィールドとプロパティの処理方法を示します。クラスの参照情報を参照するには、.NET Framework の詳細で説明されているように、.NET Framework クラス ライブラリで用語 System.String
を検索してください。
関数 string
は、String.String
配列 (String.String[]
、String.String[,]
など) を、同じ次元とサイズの MATLAB string
配列に変換します。String.String[][]
などのジャグ配列の変換はサポートされません。
System.__ComObject
型は Microsoft® COM オブジェクトを表します。これはパブリック メソッドをもたない mscorlib
アセンブリの不可視のパブリック クラスです。特定状況下において、.NET オブジェクトは System.__ComObject
のインスタンスを返します。MATLAB は、メタデータで定義されている戻り値の型に基づいて System.__ComObject
を処理します。
メソッドまたはプロパティの戻り値型が厳密に型指定されていて、呼び出しの結果が System.__ComObject
の場合、MATLAB は返されたオブジェクトを適切な型に自動的に変換します。
たとえば、アセンブリが型 TestType
を定義し、次のシグネチャをもつメソッド GetTestType
を提供するものとします。
戻り値の型 | 名前 | 引数 |
---|---|---|
NetDocTest.TestType RetVal | GetTestType | (NetDocTest.MyClass this) |
GetTestType
の戻り値型が厳密に型指定されており、.NET Framework は System.__ComObject
型のオブジェクトを返します。MATLAB は以下の "疑似コード" で示すように、オブジェクトを適切な型の NetDocTest.TestType
に自動的に変換します。
cls = NetDocTest.MyClass; var = GetTestType(cls)
var = TestType handle with no properties.
メソッドまたはプロパティの戻り値型が System.Object
で、呼び出しの結果が System.__ComObject
の場合、MATLAB は System.__ComObject
を返します。返されたオブジェクトを使用するには、有効なクラスまたはインターフェイスの型にキャストします。このオブジェクトの有効なタイプを確認するには、製品ドキュメンテーションを参照してください。
新しいタイプのメンバーを呼び出すには、MATLAB 変換構文を使用してオブジェクトをキャストします。
objConverted = namespace.classname(obj)
ここで、obj
は System.__ComObject
型です。
たとえば、Microsoft Excel® シート コレクションの項目は、チャートまたはワークシートにすることができます。以下のコマンドは、System.__ComObject
変数の mySheet
を Chart
または Worksheet
オブジェクトの newSheet
に変換します。
newSheet = Microsoft.Office.Interop.Excel.interfacename(mySheet);
ここで、interfacename
は、Chart
または Worksheet
です。例は.NET を使用した Microsoft Excel スプレッドシートでの作業を参照してください。
関数との間で COM オブジェクトを受け渡しする場合は、オブジェクトがスコープ外になったときに MATLAB によって自動的に解放されないよう、オブジェクトをロックします。オブジェクトをロックするには、関数 NET.disableAutoRelease
を呼び出します。これを使用して処理を行った後、関数 NET.enableAutoRelease
を使用してオブジェクトのロックを解除します。
.NET が System.Nullable
型を返すと、MATLAB は対応する System.Nullable
型を返します。
System.Nullable
型を使用すると、数値型のような null
値をサポートしていない型に null
値を代入できます。System.Nullable
オブジェクトを MATLAB で使用するには、まず null
値の処理方法を決定します。
null
値を <ValueType>
値と異なる方法で処理する場合は、HasValue
プロパティを使用します。
すべての値を基になる <ValueType>
にする場合は、GetValueOrDefault
メソッドを使用します。このメソッドでは、<ValueType>
型の既定の値を null
値に代入します。
オブジェクトの基となる、MATLAB 式に適した型の変数を使用します。たとえば、System.Nullable 引数の受け渡しを参照してください。
MATLAB は動的な型を System.Object
として処理します。たとえば、以下の C# メソッド exampleMethod
は動的な入力引数 d
をもち、動的な出力値を返します。
public dynamic exampleMethod(dynamic d)
以下の表は、対応する MATLAB 関数シグネチャを示しています。
戻り値の型 | 名前 | 引数 |
---|---|---|
System.Object RetVal | exampleMethod | ( |
.NET ジャグ配列は、MATLAB コマンドで使用する前に変換しておかなければなりません。次のように変換してください。
配列の形状が四角形の場合、対応する MATLAB の数値関数を使用します。
配列の形状が四角形ではない場合、関数 cell
を使用します。
ジャグ配列が多次元の場合は、配列を個々の次元ごとに変換しなければなりません。