关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

C#调用matlab接收返回值或获取workspace变量

发布时间:2019-12-11 18:41:42

1.假如是调用的是minus(m,n)函数, 返回值是二者的差a(一个数)

MLApp.MLApp matlab = null;

Type matlabAppType = System.Type.GetTypeFromProgID("Matlab.Application");

matlab = System.Activator.CreateInstance(matlabAppType) as MLApp.MLApp;

string path_project = Directory.GetCurrentDirectory();   //工程文件的路径,如bin下面的debug

string path_matlab = "cd('" + path_project + "')";    //自定义matlab工作路径    这里我注释调用 

matlab.Execute(path_matlab);

matlab.Execute("clear all");

matlab.Execute("close all");

matlab.Execute("clc");

string command;

command = @"a=minus2(10,4)";

matlab.Execute(command);

object result;

matlab.GetWorkspaceData("a", "base", out result);

double d = (double)result;

Console.WriteLine(d.ToString());

2.如果返回值是数组

object result;

matlab.GetWorkspaceData("res", "base", out result);//res代表返回值

double[,] d = (double[,])result;

int lll = d.Length;

Console.WriteLine(lll);

Console.WriteLine(d[0, 0].ToString());

将返回值的长度和第一个返回值打印出来,如果想获取workspace里面的变量,也可参考这个写法。

3.如果返回值是字符串

object result;

matlab.GetWorkspaceData("res", "base", out result);//res代表返回值

string d = (string)result;

int lll = d.Length;

Console.WriteLine(lll);

Console.WriteLine(d[0, 0].ToString());



/template/Home/Zkeys/PC/Static