Matlab MWArray到C#array,无需跳环

Matlab MWArray到C#array,无需跳环,matlab,matlab-deployment,matlab-compiler,Matlab,Matlab Deployment,Matlab Compiler,我正在使用MatlabBuilder NE从C#运行一些MATLAB函数 我有一个MATLAB 1行,n列的双精度向量,作为MWArray返回,维度为1,n 从这个数组中获取C 35;double[]数组的最简单方法是什么?无论我做什么,我似乎都得到更多的 MWRIEX。 < P>这取决于你考虑跳过箍。我认为您需要转换为MWNumericArray、MWLogicalArray或MWCharArray中的一种,并使用所演示的ToArray方法。假设您有一个名为aMW的MWArray: doubl

我正在使用MatlabBuilder NE从C#运行一些MATLAB函数

我有一个MATLAB 1行,n列的双精度向量,作为
MWArray
返回,维度为1,n


从这个数组中获取C 35;
double[]
数组的最简单方法是什么?无论我做什么,我似乎都得到更多的<代码> MWRIEX。

< P>这取决于你考虑跳过箍。我认为您需要转换为
MWNumericArray
MWLogicalArray
MWCharArray
中的一种,并使用所演示的
ToArray
方法。假设您有一个名为
aMW
MWArray

double[,] ad = (double[,]) ((MWNumericArray) aMW).ToArray(MWArrayComponent.Real);


如帕特里克所指出的,使用“代码”> toARARY()/<代码>来获得向量,而不是2D数组。

< P>这取决于你考虑跳过箍。我认为您需要转换为
MWNumericArray
MWLogicalArray
MWCharArray
中的一种,并使用所演示的
ToArray
方法。假设您有一个名为
aMW
MWArray

double[,] ad = (double[,]) ((MWNumericArray) aMW).ToArray(MWArrayComponent.Real);


正如Patrick所指出的,使用而不是
ToArray()
来获取向量,而不是2d数组。

如果您使用兼容版本的MWArray,那么您可以尝试使用我创建的MWArray扩展


转换为“T”类型的数组只需通过泛型方法
ToArray
即可。在您的情况下,如果您使用兼容版本的MWARRARY,则可以尝试使用我创建的MWARRY扩展


转换为“T”类型的数组只需通过泛型方法
ToArray
即可。在您的情况下,
double[]result=aMW.ToArray()

谢谢。你能补充一下如何使用1维数组双精度[]吗?我对C#一点也不精通,但我可以想象,如果
aMW
是1D,那么你可以改为
double[]
。我无法尝试。若要获取向量而不是2d数组,请使用instead of
ToArray()
。对于那些需要将2d数组作为向量返回的人,请记住
ToVector()
使用列主顺序,因此在返回之前,您可能需要在Matlab代码中转置矩阵,以便得到行主顺序。@Patrick感谢您提供的信息。我在答案中添加了这一点以供参考,但正如我所提到的,我对C#真的不了解,所以我不能再作评论了。谢谢。你能补充一下如何使用1维数组双精度[]吗?我对C#一点也不精通,但我可以想象,如果
aMW
是1D,那么你可以改为
double[]
。我无法尝试。若要获取向量而不是2d数组,请使用instead of
ToArray()
。对于那些需要将2d数组作为向量返回的人,请记住
ToVector()
使用列主顺序,因此在返回之前,您可能需要在Matlab代码中转置矩阵,以便得到行主顺序。@Patrick感谢您提供的信息。我在答案中添加了这一点以供参考,但正如我所提到的,我对C#真的不了解,因此我不能再作进一步评论。