Zdefiniowałem klasę z grupą metod przechowywanych w katalogu metod. Mogę utworzyć instancję klasy i wywołać jej metody w programie Matlab. Jednakże, jeśli staram się robić to samo z .NET/COM otrzymuję ten komunikaty o błędach:Wywołać metodę obiektu (katalogu) Matlab z .Net
"??? Reference to non-existent field 'test'.\n\n"
Tutaj Test jest metoda.
Moja klasa wywodzi się z obsługi i wypróbowałem obie możliwości: metodę zdefiniowaną w pliku klasy i metodzie katalogu. Ani działa!
Wszelkie opinie będą bardzo mile widziane. Wielkie dzięki.
PS:
kod C#:
MLApp.MLApp matlab = new MLApp.MLApp();
matlab.Execute("clear;");
matlab.Execute("Object = Class1();");
string test = matlab.Execute("Object.test()");
Praca kod Matlab:
clear;
Object = Class1();
Object.test()
PPS:
Wystarczy dwukrotnie sprawdzane że działa skrypt Matlab nie działa przy wywołaniu z kodu C#:
Matlab definicja klasy:
classdef Test < handle
methods
function [c, obj] = add(obj, a, b)
c = a + b;
end
end % methods
end %classdef
Matlab scenariusz:
clear;
Test = Test();
result = Test.add(1, 3);
C# Kod:
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);