C# 调用Matlab对象';来自.Net的s(目录)方法

C# 调用Matlab对象';来自.Net的s(目录)方法,c#,matlab,C#,Matlab,我用存储在方法目录中的一组方法定义了一个类。我可以实例化这个类并在matlab中调用它的方法。但是,如果我尝试从.NET/COM执行相同操作,则会收到以下错误消息: "??? Reference to non-existent field 'test'.\n\n" 这里测试是方法 我的类是从handle派生的,我尝试了两种可能性:类文件中定义的方法和目录方法。两个都不行 如有任何反馈,将不胜感激。非常感谢 附言: C#代码: 工作matlab代码: clear; Object = Class1

我用存储在方法目录中的一组方法定义了一个类。我可以实例化这个类并在matlab中调用它的方法。但是,如果我尝试从.NET/COM执行相同操作,则会收到以下错误消息:

"??? Reference to non-existent field 'test'.\n\n"
这里测试是方法

我的类是从handle派生的,我尝试了两种可能性:类文件中定义的方法和目录方法。两个都不行

如有任何反馈,将不胜感激。非常感谢

附言:

C#代码:

工作matlab代码:

clear;
Object = Class1();
Object.test()
缴费灵:

在从C#代码调用时,只需再次检查工作的Matlab脚本是否不工作:

Matlab类定义:

classdef Test < handle
    methods         
        function [c, obj] = add(obj, a, b) 
            c = a + b;  
        end
    end % methods
end %classdef
C#代码:


事实证明,您不能使用与类名相同的“对象实例名”。因此:

MLApp.MLApp matlab = new MLApp.MLApp();

object result;

matlab.Execute("clear;");
matlab.Execute("X = Test();");
matlab.Execute("result = X.add(1, 3);");
matlab.GetWorkspaceData("result", "base", out result);
工作!Mathworks提出了一个错误(他们可能会在将来的版本中修复此错误)

基督教徒

clear;
Test = Test();
result = Test.add(1, 3);
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);
MLApp.MLApp matlab = new MLApp.MLApp();

object result;

matlab.Execute("clear;");
matlab.Execute("X = Test();");
matlab.Execute("result = X.add(1, 3);");
matlab.GetWorkspaceData("result", "base", out result);