繁体   English   中英

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

[英]Is it possible to use .NET application in MatLab?

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

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

a = GetMeSomeData()

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

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

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

那里有很多文档。

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

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

您可以轻松调用.NET程序集中的函数。 首先,您必须告诉Matlab您要使用的装配:

NET.addAssembly("path//to//assembly.dll");

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

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

你甚至可以有多个输出。 AC#功能如下:

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

可以在Matlab中这样调用:

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

要直接回答问题,可以使用system命令或! 在MATLAB中执行外部进程。 一旦它返回,您可以读取并解析MATLAB函数的输出。 将所有内容全部包含在MATLAB .m文件中,并且您拥有在问题中描述的内容。

当然,您可以使用createClassFromWsdl直接从MATLAB访问Web服务。 正如其他人所指出的, NET.addAssembly允许您直接从MATLAB导入和使用.net程序集,这可能比解析文本文件输出更清晰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM