C# · 12月 25, 2021

c# – 是否可以在MatLab中使用.NET应用程序?

我在C#中感觉在家,我将设计一个控制台应用程序,它将从Web服务中获取一些数据.我想允许一组科学家使用MatLab中的数据.一种实现方法是将其存储在HDD中的文件中,然后将其内容加载到MatLab中.

这让我有想法.是否可以在MatLab中创建一个调用在C#中创建的EXE的函数,所以我的科学朋友可以去:

a = GetMeSomeData()

并使用服务的响应填充变量a? (我当然会使用我的C#代码格式化数据,因此它将适合MatLab的矩阵模型.)

在开始工作之前,我已经做了一些谷歌搜索,但是我发现大部分的东西都是关于一个旧版本的MatLab(2007),它是关于创建COM对象的.

解决方法 您可以轻松地调用.NET程序集中的函数.首先你要告诉Matlab你将要使用哪个程序集: NET.addAssembly(“path//to//assembly.dll”);

之后,您只需调用m文件中的函数:

foo = Namespace.Class.FunctionFoo(input1,input2);bar = Namespace.Class.FunctionBar(input1,input2);

甚至可以有多个输出.一个C#函数像这样:

public void MultipleOut(int in1,int in2,out int out1,out int out2){ … }

在Matlab中可以这样称呼:

[out1,out2] = Namespace.Class.MultipleOut(in1,in2);