MATLAB Builder NE による .NET コンポーネントによる出力 MWArray を Visual Basic 内で .NET Array に変換するにはどうすればよいですか?

MATLAB プログラムを MATLAB Builder NE を使用して.NET コンポーネントに変換しました。元となる MATLAB プログラムでは、複数のデータ型の複数の戻り値を返します。
例:
function [argout1, argout2, ..., varargout] = foo(argin1, argin2, ...., varargin)
ToArray() メソッドを使用して MWArray 型の戻り値をネイティブの.NET 配列に変換しようとすると、Visual Studio による以下のエラーとなります。
'ToArray' is not a member of 'MathWorks.MATLAB.NET.Arrays.MWArray'.
MWArray 型を .NET 配列に変換する方法を教えてください。

 Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 22 Jan. 2021
Bearbeitet: MathWorks Support Team am 22 Jan. 2021

0 Stimmen

ToArray() メソッドは MWNumericArray, MWLogicalArray, MWCharArray 型のみに有効です。MAArray オブジェクトの要素は ToArray() メソッド実行前にこれら3つのうちのどれかにキャストされている必要があります。
Visual Basic では CType コマンドを使用して  MWArray 配列を MWNumericArray, MWLogicalArray, または MWCharArray にキャストし、ToArray メソッドを使用する方法があります。
たとえば、関数 foo が 複数の出力引数を持つ MWArray オブジェクトの場合、以下の記述により1番目の出力引数を、MWNumericArray 型を称する方法で、.NET の double 型配列に変換することができます。
Dim nativeArray(,) As Double = CType(foo(1), MWNumericArray).ToArray(MWArrayComponent.Real)
詳細については MATLAB Builder NE の MWArray クラスライブラリのドキュメントをご覧ください。
MATLAB 環境に MATLAB Builder NE のヘルプがインストールされている場合は、以下のコマンドでも開くこともできます。
>> 
web([docroot,'/toolbox/dotnetbuilder/MWArrayAPI/HTML/index.html'])

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!