メソッドディレクトリに格納された一連のメソッドでクラスを定義しました。私は、クラスをインスタンス化し、そのメソッドをMATLAB内で呼び出すことができます。私は.NET/COMから同じことをしようとした場合しかし、私はこのエラーメッセージが出ます:は、.NETのMatlabオブジェクト(ディレクトリ)メソッドを呼び出す
"??? Reference to non-existent field 'test'.\n\n"
ここテストは方法です。
私のクラスはハンドルから派生しています。私はクラスファイルとディレクトリメソッドで定義されたメソッドの両方を試しました。どちらもうまくいきません!
フィードバックは非常に高く評価されます。どうもありがとう。
PS:
C#コード:
MLApp.MLApp matlab = new MLApp.MLApp();
matlab.Execute("clear;");
matlab.Execute("Object = Class1();");
string test = matlab.Execute("Object.test()");
の作業MATLABコード:
clear;
Object = Class1();
Object.test()
PPS:
ただ、ダブルは、呼び出されたときに作業MATLABスクリプトが動作していないことを確認C#コード:
Matlabのクラス定義:
classdef Test < handle
methods
function [c, obj] = add(obj, a, b)
c = a + b;
end
end % methods
end %classdef
Matlabのスクリプト:
clear;
Test = Test();
result = Test.add(1, 3);
C#コード:
MLApp.MLApp matlab = new MLApp.MLApp();
object result;
matlab.Execute("clear;");
matlab.Execute("Test = Test();");
matlab.Execute("result = Test.add(1, 3);");
matlab.GetWorkspaceData("result", "base", out result);