该类没有名为';的属性或方法';.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方法。
有人知道那个问题的原因吗?
考虑以下示例
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