如何将matlab中的矩阵转换为C#/ .NET中的double [,]数组?

时间:2013-11-16 15:16:28

标签: c# arrays matlab matrix

如何在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数组?

2 个答案:

答案 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];
    }
}