如何在C#中将MWArray类型的矩阵(从matlab运行时返回)转换为2-dim数组(double [,])?
我正在研究最简单的matlab& .NET集成,如下所述: http://domoreinlesstime.wordpress.com/2013/01/26/access-matlab-from-c/
使用以下语句,我可以将MWArray类型的变量 result 转换为1-dim数组:
double[] arr = (double[])((MWNumericArray)result).ToVector(MWArrayComponent.Real);
有没有一种简单的方法可以将 result 转换为C#中的2-dim数组?
答案 0 :(得分:7)
以下应该足够了(为我工作):
double[,] arr = (double[,])((MWNumericArray)result).ToArray(MWArrayComponent.Real);
答案 1 :(得分:-2)
最后,我在这里找到了答案:
从.NET调用matlab函数 http://forum.finaquant.com/viewtopic.php?f=4&t=1217
double[] arr = (double[])((MWNumericArray)result).ToVector(MWArrayComponent.Real);
// convert 1-dim array (vector) to 2-dim array
double[] vec = (double[])((MWNumericArray)M).ToVector(MWArrayComponent.Real);
double[,] mat = new double[rows, cols];
for (int i = 0; i < cols; i++)
{
for (int j = 0; j < rows; j++)
{
mat[j, i] = vec[i * cols + j + 1];
}
}