質問: foo(argin1, argin2, ...., varargin) toarray() メソッドを使用して mwarray 型の戻り値をネイティブの.net 配列に変換しようとすると、visual studio による以下のエラーとなります。 'toarray' is not a member of 'mathworks.matlab.net.arrays.mwarray'. mwarray 型を .net 配列に変換する方法を教えてください。
回答: 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'])