Matlab output to C#
本文关键字:to output Matlab | 更新日期: 2023-09-27 18:14:58
我有一个复杂的Matlab函数,我不想用c#重写。函数返回一个包含N个双精度数字的数组。
考虑到我已经将函数编译成。net程序集(.dll文件),并且函数的签名像[results] = myFunc('stringInput'),我如何在c#代码中调用我的函数?
谢谢!
你可以在这里找到这样做的步骤:
https://www.mathworks.com/help/compiler_sdk/gs/create - - cc -应用程序- matlab代码- 1. - html
必须在运行代码的计算机上安装运行库(您可以在创建.dll包时添加它)
我的方法是将MLApp添加为项目引用。从MATLAB中,您需要启动自动化服务:
enableservice('AutomationServer', true);
在c#中,您可以使用。
MLApp.DIMLApp matlabInstance = (MLApp.DIMLApp)Marshal.GetActiveObject("Matlab.Desktop.Application");
然后可以使用MLApp的接口函数进行交互。例如
int a = (int)matlabInstance.GetVariable("variableName", "base");
甚至执行一些东西。例如:
matlabInstance.Execute("evalin( 'base' , 'plot( range , dataVector , ''k'');' );");
当然你需要一些错误处理,等等。正常的应用程序。这里有一个关于它的主题