Definí una clase con un conjunto de métodos almacenados en un directorio de métodos. Puedo instanciar la clase e invocar sus métodos dentro de matlab. Sin embargo, si trato de hacer lo mismo desde .NET/COM consigo este mensaje de error:invocar el método (directorio) del objeto Matlab desde .Net
"??? Reference to non-existent field 'test'.\n\n"
Aquí prueba es el método.
Mi clase se deriva de handle y he intentado ambas posibilidades: método definido en el archivo de clase y método de directorio. ¡Ni funciona!
Cualquier comentario sería muy apreciado. Muchas gracias.
PS:
código C#:
MLApp.MLApp matlab = new MLApp.MLApp();
matlab.Execute("clear;");
matlab.Execute("Object = Class1();");
string test = matlab.Execute("Object.test()");
Trabajando código de MATLAB:
clear;
Object = Class1();
Object.test()
PPS:
Basta con hacer doble comprobado que la secuencia de comandos Matlab de trabajo no está funcionando cuando se invoca del código de C#:
Matlab definición de clase:
classdef Test < handle
methods
function [c, obj] = add(obj, a, b)
c = a + b;
end
end % methods
end %classdef
Matlab guión:
clear;
Test = Test();
result = Test.add(1, 3);
código 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);