运行c#应用程序并将数据返回到MATLAB
本文关键字:返回 MATLAB 数据 应用程序 运行 | 更新日期: 2023-09-27 18:14:43
我知道下面这行将从MATLAB中运行我的c#应用程序。
dos(['C:'MyLocation'bin'Release'MyApp.exe']);
我想知道的是如何从我的c#应用程序返回数据(数字数组)到MATLAB变量?
多亏了Alyafey,我可以在matlab中使用下面的行来运行我的c#应用程序并返回值。
[status,cmdout] = system(command,'-echo')
然而,我不确定在我的c#应用程序中如何返回值。我的代码是在控制台应用程序中编写的,因此代码在静态void Main处进入和退出。我知道我可以改变main函数返回一个整数,但是我需要返回的数字是一个双精度。我该怎么做呢?我认为使用控制台应用程序是错误的?
我希望这对你有帮助,这不是一个应用程序,但你可以创建c#库而不是应用程序。
首先创建你的c#应用程序来做这样一个示例。
using System;
namespace MatlabLib
{
public class MatlabHandler
{
public static double[] GetNums()
{
var db = new double[10];
var r = new Random();
for (int i = 0; i < 10; i++)
{
db[i] = r.Next();
}
return db;
}
}
}
那么在matlab中你可以这样做
%%path to dll file
dllPath = fullfile('c:','MatlabLib.dll');
%%load dll
NET.addAssembly(dllPath);
%% get class by calling it's name started by namespace
obj = MatlabLib.MatlabHandler
%%calling static function
mlData = obj.GetNums;
%% convert result to array of double
l = double(mlData);
您可以参考此链接了解更多关于matlab文档中心的详细信息