c#和matlab数据格式转换方法

坚强是说给别人听的谎言 提交于 2020-02-08 12:57:08

摘要

在【C#调用Matlab详细步骤】https://blog.csdn.net/weixin_42432227/article/details/103876304一文中,介绍了c#调用matlab的详细步骤。但是在c#实际编程过程中。还需要特别注意c#和matlab数据格式的相互转换。本文则介绍两者数据转换的方法。

a) C# 数据转换成matlab数据

Matlab数据和C#数据相互转换的过程中,需要用到MWArray

double[] ax;

MWNumericArray mw_ax = new MWNumericArray(ax);

这就将c#

b) Matlab数据转换成C#数据

MWArray hpf_ax = (MWNumericArray)new double[]{ };

Array hpf_ax_ar =( (MWNumericArray)hpf_ax).ToVector(MWArrayComponent.Real);

double[] hpf_ax_c = (double[])hpf_ax_ar;

这就将matlab型的hpf_ax 转换成c# double[]型了 double[] 型的ax转换成matlab格式了。

c) C#调用Matlab函数(dll)输出多参数方法

Matlab的m文件函数返回多个参数,如 [y1,y2] = function(x1,x2)  x1,x2,y1,y2都是矩阵。

方法如下:

double[] a;

double[] b;   //c#型的两个输入参数

MWNumericArray mw_a = new MWNumericArray(a);

MWNumericArray mw_b = new MWNumericArray(b);  //输入参数转换成matlab格式

 

MWArray[] input = new MWArray[] { mw_a, mw_b};

MWArray[] output = new MWArray[2]; //输出两个参数

 

function.Class1 fun = new function.Class1();

fun.function(2, ref output, input); //调用函数,输出参数需要加ref关键字

 

MWNumericArray out1 = output[0] as MWNumericArray;

MWNumericArray out2 = output[1] as MWNumericArray;

这样就得到了两个输出的matlab型的数据,若想得到c#型的数据格式,用上面的方法b)转换一下即可。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!