私はC#でインスタンス化したい基本的なMatlabクラスを持っています。コンパイル済み.NETアセンブリでMatlabオブジェクトを使用するにはどうすればよいですか?
classdef MyClass
properties
Value
end
methods
function obj=MyClass(v)
obj.Value = v;
end
function display(obj)
disp(obj.Value);
end
end
end
次いで、これ.DLLファイルに組み込まれ、関連したMatlabの名前空間(MathWorks.MATLAB.NET.Arrays、MathWorks.MATLAB.NET.Utility)と一緒にC#プロジェクトにインポートされます。 C#の側
、私はこのように、このクラスのインスタンスを構築しようとしています:
Untitled2.MLTestClass matlab = new Untitled2.MLTestClass();
MWCharArray input = new MWCharArray("Initial");
MWArray[] result = matlab.MyClass(1, input);
コードの最後の行の終わりまでには、result.Length = 1と結果[0] = NULL 。私は何とか新しく作成されたMatlabオブジェクトへの参照を何とか取得することを何とか期待していました。私は疑問に思っていました、これも可能ですか?そしてもしそうなら、これはどのように達成できますか?もしそうでなければ、その周りに道があるのでしょうか? (私は基本的に、Matlabに統合したくないGUIコンポーネントをC#で作成していますが、むしろ逆の方法です)。
おかげで、洞察力であることが証明されています。 – filipcampeanu
@ andrey-rubshtein現在、これを実行する最善の方法は何ですか?私はmatlabで複数のクラス(複数のメソッドを持つ)があり、各クラスはデモスクリプトを持っています。私は各クラスのための1つの.NETアセンブリを生成したいと思います。 – nabrugir