该类没有名为';的属性或方法';.MATLAB错误

本文关键字:属性 方法 MATLAB 错误 | 更新日期: 2023-09-27 18:29:50

我正试图在MATLAB中调用一个C#dll。

这里是我的C#dll:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace dllForMatlab
{
  public class Class
  {
    public void MultipleOut(int in1, int in2, out int out1, out int out2)
    {
        out1 = in1 * in2;
        out2 = in1 + in2;    
    }
  }
}

这里是我的MATLAB代码:

NET.addAssembly('the path'dllForMatlab.dll');
in1=5;
in2=3;
[out1, out2] = dllForMatlab.Class.MultipleOut(in1, in2);

我使用MATLAB R2011b,我得到了错误"类dllForMatlab.class没有名为"MultipleOut"的属性或方法。"

我不明白为什么我不能调用MultipleOut方法。

有人知道那个问题的原因吗?

该类没有名为';的属性或方法';.MATLAB错误

考虑以下示例

example.cs

using System;
namespace MyNS
{
    public class MyClass
    {
        public void myFunc1(int in1, int in2, out int out1, out int out2)
        {
            out1 = in1 * in2;
            out2 = in1 + in2;    
        }
        public static void myFunc2(int in1, int in2, out int out1, out int out2)
        {
            out1 = in1 * in2;
            out2 = in1 + in2;    
        }
    }
}

我们将以上内容编译为一个程序集:

C:'> csc.exe /target:library example.cs

MATLAB

>> NET.addAssembly('C:'path'to'example.dll');
% static class method
>> [a,b] = MyNS.MyClass.myFunc2(10,20)
a =
         200
b =
          30
% member method
>> obj = MyNS.MyClass;
>> [a,b] = obj.myFunc1(10,20)
a =
         200
b =
          30