MATLAB Answers

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

5 views (last 30 days)
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 配列に変換する方法を教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 10 Jul 2020
Edited: MathWorks Support Team on 10 Jul 2020 at 10:49
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'])

  0 Comments

Sign in to comment.

More Answers (0)