MATLAB Answers

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

17 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 23 Jan 2020
Edited: MathWorks Support Team on 23 Jan 2020
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)

Sign in to answer this question.