我试图在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方法。
有没有人对这个问题的原因有所了解?
答案 0 :(得分:0)
考虑以下示例
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
>> 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