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());
Copyright © 2004-2024 Ynicp.com 版权所有 法律顾问:建纬(昆明)律师事务所 昆明市网翼通科技有限公司 滇ICP备08002592号-4