纠正一下网上发布的关于matlab与C# 矩阵转换示例网上代码如下:3.矩阵转换示例用于将matlab的返回值矩阵传递到C#规范的矩阵中MWArray ResOut = null; //用于值输出的matlab矩阵
ResOut=GTN.GetMatchNo(1,MainAdd, ModelAdd, FName.GTM(), Vaval);
MWNumericArray temp = (MWNumericArray)ResOut[0];
//矩阵转换
Array netInterfaceMatrix = temp.ToArray(MWArrayComponent.Real); //c#规范的矩阵
double[,] location = (double[,])netInterfaceMatrix; //变态的强制类型转换
[http://mibxue.spaces.live.com/blog/cns!1B1AC4E08A659077!1836.entry] 其中 "矩阵转换" 部分有
问题。我已经做如下修正: //定义数组部分
MWNumericArray k = null; // The matrix to k(传入的多维数组)
MWNumericArray l = null; // The matrix to l (传入的一维数组)
MWNumericArray t = 3; // 传入的常数
MWArray argOut= null; // Stores single factorization result 接受的结果
MWArray argsOut= null; // Stores multiple factorization results
bool makeSparse = true;
k = (makeSparse)
? MWNumericArray.MakeSparse(M, N, MWArrayComplexity.Real, (M * N))
: new MWNumericArray(MWArrayComplexity.Real, MWNumericType.Double, M, N);
l = (makeSparse)
? MWNumericArray.MakeSparse(1, N, MWArrayComplexity.Real, N)
: new MWNumericArray(MWArrayComplexity.Real, MWNumericType.Double, 1, N);
//调用matlab
程序 argOut = myclass.mybint((MWArray)k, (MWArray)l, t); //调用matlab算法
//数据转换成C#标准形式
MWNumericArray temp = (MWNumericArray)argOut;
double[,] location = (double[,])temp.ToArray(MWArrayComponent.Real);
//转换后的 location 就可以在C#语言中使用了