Exemple #1
0
        /// <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));
        }
Exemple #2
0
        /// <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));
        }