matlab 结构体数据(MWStructArray)读取到C#

 下面是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")后面加引索 获取对应数据

运行结果

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值