摘要:
在【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)转换一下即可。
来源:CSDN
作者:qianlizhixing2020
链接:https://blog.csdn.net/weixin_42432227/article/details/103876500