下面是matlab代码 用此代码生成 dll
function outputArg1 = myfun(inputArg1,inputArg2)
temp1 =inputArg1+inputArg2;
temp2 =inputArg1-inputArg2;
temp3 =inputArg1*inputArg2;
temp4 =inputArg1/inputArg2;
outputArg1(1).jx = {1*temp1+1,1*temp1+2,1*temp1+3};
outputArg1(1).jm = {1*temp2+1,1*temp2+2,1*temp2+3};
outputArg1(1).ig = {1*temp3+1,1*temp3+2,1*temp3+3};
outputArg1(1).iu = {1*temp4+1,1*temp4+2,1*temp4+3};
outputArg1(2).jx = {2*temp1+1,2*temp1+2,2*temp1+3};
outputArg1(2).jm = {2*temp2+1,2*temp2+2,2*temp2+3};
outputArg1(2).ig = {2*temp3+1,2*temp3+2,2*temp3+3};
outputArg1(2).iu = {2*temp4+1,2*temp4+2,2*temp4+3};
outputArg1(3).jx = {3*temp1+1,3*temp1+2,3*temp1+3};
outputArg1(3).jm = {3*temp2+1,3*temp2+2,3*temp2+3};
outputArg1(3).ig = {3*temp3+1,3*temp3+2,3*temp3+3};
outputArg1(3).iu = {3*temp4+1,3*temp4+2,3*temp4+3};
end
编译好用myfun.dll 在VS项目中添加引用
代码如下 使用GetField方法获取 对应关键字的数据
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using myfun;
namespace ConsoleApp_matlab
{
class Program
{
static void Main(string[] args)
{
int a = 100;
int b = 100;
MWArray mWArraya = new MWNumericArray(a);
MWArray mWArrayb = new MWNumericArray(b);
Console.WriteLine(mWArraya);
Console.WriteLine(mWArrayb);
myClass myfun = new myClass();
MWStructArray resultObj = (MWStructArray)myfun.myfun(mWArraya, mWArrayb);
Console.WriteLine(resultObj.GetField("jx"));
Console.WriteLine(resultObj.GetField("jx")[2]);
Console.WriteLine(resultObj.GetField("jm"));
Console.WriteLine(resultObj.GetField("ig"));
Console.WriteLine(resultObj.GetField("iu"));
Console.ReadLine();
}
}
}
可以直接在resultObj.GetField("jx")后面加引索 获取对应数据
运行结果