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

8 c# matlab web-services

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

但这让我想到了.是否可以在MatLab中创建一个函数来调用在C#中创建的EXE,以便我的科学朋友可以去:

a = GetMeSomeData()
Run Code Online (Sandbox Code Playgroud)

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

在我开始研究之前,我已经完成了一些谷歌搜索,但我发现的大部分内容都是关于MatLab(2007)的旧版本,并且说了一些关于创建COM对象的内容.

Fab*_*amp 5

您可能想看看这个:在MATLAB中使用.NET库.

那里有很多文档.

从开始,然后看起来你可以像在.NET中那样正常使用这些类.NET.addAssembly('path-to-dll)

您可能还想看看使用.NET应用程序的数组.


sho*_*zer 3

您可以轻松地调用 .NET 程序集中的函数。首先你必须告诉 Matlab 你要使用什么程序集:

NET.addAssembly("path//to//assembly.dll");
Run Code Online (Sandbox Code Playgroud)

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

foo = Namespace.Class.FunctionFoo(input1, input2);
bar = Namespace.Class.FunctionBar(input1, input2);
Run Code Online (Sandbox Code Playgroud)

您甚至可以有多个输出。AC# 函数如下:

public void MultipleOut(int in1, int in2, out int out1, out int out2)
{ ... }
Run Code Online (Sandbox Code Playgroud)

在Matlab中可以这样调用:

[out1, out2] = Namespace.Class.MultipleOut(in1, in2);
Run Code Online (Sandbox Code Playgroud)