/// <summary> /// 根据新的名称列表,生成新的矩阵。 /// </summary> /// <param name="newParamNames">新矩阵行列名称</param> /// <param name="oldParamNames">旧矩阵行列名称</param> /// <param name="oldMatrix">旧矩阵</param> /// <returns></returns> public static IMatrix GetSymmetricInOrder(List <string> newParamNames, List <string> oldParamNames, double[][] oldMatrix, Double defaultVal = 0, double DefaultDiagonalValue = 1e10) { NamedMatrix matrix = new NamedMatrix(oldParamNames, oldMatrix); double[][] matriResult = matrix.GetNewMatrix(newParamNames, defaultVal, DefaultDiagonalValue); return(new SymmetricMatrix(matriResult)); }
/// <summary> /// 根据新的名称列表,生成新的矩阵。 /// </summary> /// <param name="newParamNames">新矩阵行列名称</param> /// <param name="oldParamNames">旧矩阵行列名称</param> /// <param name="oldMatrix">旧矩阵</param> /// <returns></returns> public static IMatrix GetNewMatrix(List <string> newParamNames, List <string> oldParamNames, double[][] oldMatrix, Double defaultVal = 0, double DefaultDiagonalValue = 1e10) { if (newParamNames.Count == 0) { return(new Matrix(0)); } NamedMatrix matrix = new NamedMatrix(oldParamNames, oldMatrix); double[][] matriResult = matrix.GetNewMatrix(newParamNames, defaultVal, DefaultDiagonalValue); return(new ArrayMatrix(matriResult)); }