当前位置: 首页>>代码示例>>C#>>正文


C# Matrix.Copy方法代码示例

本文整理汇总了C#中Matrix.Copy方法的典型用法代码示例。如果您正苦于以下问题:C# Matrix.Copy方法的具体用法?C# Matrix.Copy怎么用?C# Matrix.Copy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Matrix的用法示例。


在下文中一共展示了Matrix.Copy方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Cholesky

        /// <summary>
        /// Cholesky Factorization of a Matrix
        /// </summary>
        /// <param name="m">Input Matrix</param>
        /// <returns>Cholesky Faxtorization (R.T would be other matrix)</returns>
        public static Matrix Cholesky(Matrix m)
        {
            if (m.Rows != m.Cols)
                throw new InvalidOperationException("Factorization requires a symmetric positive semi-definite matrix!");

            int n = m.Rows;
            Matrix A = m.Copy();

            for (int k = 0; k < n; k++)
            {
                if (A[k, k] <= 0)
                    throw new SingularMatrixException("Matrix is not symmetric positive semi-definite!");

                A[k, k] = System.Math.Sqrt(A[k, k]);
                for (int j = k + 1; j < n; j++)
                    A[j, k] = A[j, k] / A[k, k];

                for (int j = k + 1; j < n; j++)
                    for (int i = j; i < n; i++)
                        A[i, j] = A[i, j] - A[i, k] * A[j, k];
            }

            // put back zeros...
            for (int i = 0; i < n; i++)
                for (int j = i + 1; j < n; j++)
                    A[i, j] = 0;

            return A;
        }
开发者ID:nagarwl1,项目名称:numl,代码行数:34,代码来源:MatrixStatics.cs

示例2: Generate

        /// <summary>Generate Logistic Regression model based on a set of examples.</summary>
        /// <param name="x">The Matrix to process.</param>
        /// <param name="y">The Vector to process.</param>
        /// <returns>Model.</returns>
        public override IModel Generate(Matrix x, Vector y)
        {
            // create initial theta
            Matrix copy = x.Copy();

            copy = PreProcessing.FeatureDimensions.IncreaseDimensions(copy, PolynomialFeatures);

            // add intercept term
            copy = copy.Insert(Vector.Ones(copy.Rows), 0, VectorType.Col);

            Vector theta = Vector.Ones(copy.Cols);

            var run = numl.Math.Optimization.GradientDescent.Run(theta, copy, y, this.MaxIterations, this.LearningRate, new numl.Math.Functions.Cost.LogisticCostFunction(), 
                this.Lambda, new numl.Math.Functions.Regularization.Regularization());

            LogisticRegressionModel model = new LogisticRegressionModel()
            {
                Descriptor = this.Descriptor,
                Theta = run.Item2,
                LogisticFunction = new Math.Functions.Logistic(),
                PolynomialFeatures = this.PolynomialFeatures
            };

            return model;
        }
开发者ID:m-abubakar,项目名称:numl,代码行数:29,代码来源:LogisticRegressionGenerator.cs

示例3: Transform

		public Matrix Transform(Matrix m)
		{
			var cols = m.Columns;
			var rows = m.Rows;
			var res = m.Copy();
			var stepsLeft = steps;
			while (stepsLeft-- > 0)
			{
				for (var r = 0; r < rows; r++)
				{
					var tempIn = new double[cols + padding];
					for (var c = 0; c < cols; c++)
						tempIn[c] = res.MatrixData[r][c];
					var tempOut = TransformStep(tempIn, cols);
					for (var c = 0; c < cols; c++)
						res.MatrixData[r][c] = tempOut[c];
				}
				for (var c = 0; c < cols; c++)
				{
					var tempIn = new double[rows + padding];
					for (var r = 0; r < rows; r++)
						tempIn[r] = res.MatrixData[r][c];
					var tempOut = TransformStep(tempIn, rows);
					for (var r = 0; r < rows; r++)
						res.MatrixData[r][c] = tempOut[r];
				}
				cols /= 2;
				rows /= 2;
			}
			return res;
		}
开发者ID:khairy-mohamed,项目名称:FindSimilar,代码行数:31,代码来源:Dwt.cs

示例4: Generate

        /// <summary>Generate Linear Regression model based on a set of examples.</summary>
        /// <param name="x">The Matrix to process.</param>
        /// <param name="y">The Vector to process.</param>
        /// <returns>Model.</returns>
        public override IModel Generate(Matrix x, Vector y)
        {
            // create initial theta
            Vector theta = Vector.Ones(x.Cols + 1);
            Matrix copy = x.Copy();

            // normalise features
            for (int i = 0; i < copy.Cols; i++)
            {
                var j = FeatureNormalizer.FeatureScale(copy[i, VectorType.Col]);
                for (int k = 0; k < copy.Rows; k++)
                {
                    copy[k, i] = j[k];
                }
            }

            // add intercept term
            copy = copy.Insert(Vector.Ones(copy.Rows), 0, VectorType.Col);

            // run gradient descent
            var run = GradientDescent.Run(theta, copy, y, MaxIterations, LearningRate, new LinearCostFunction(),
                Lambda, new Regularization());

            // once converged create model and apply theta

            LinearRegressionModel model = new LinearRegressionModel(x.Mean(VectorType.Row), x.StdDev(VectorType.Row))
            {
                Descriptor = Descriptor,
                Theta = run.Item2
            };

            return model;
        }
开发者ID:m-abubakar,项目名称:numl,代码行数:37,代码来源:LinearRegressionGenerator.cs

示例5: SimplexMethodDual

 public SimplexMethodDual(Matrix a, Matrix b, Matrix c, List<int> baseIndexes)
 {
     m_matrixA = a.Copy();
     m_matrixB = b.Copy();
     m_matrixC = c.Copy();
     m_baseIndexes = new List<int>(baseIndexes);
     m_baseIndexes.Sort();
 }
开发者ID:glebmikulko,项目名称:informatics-labs,代码行数:8,代码来源:SimplexMethodDual.cs

示例6: SimplexMethodDualModification

 public SimplexMethodDualModification(Matrix a, Matrix b, Matrix c, List<int> baseIndexes, Matrix dMin, Matrix dMax)
 {
     m_matrixA = a.Copy();
     m_matrixB = b.Copy();
     m_matrixC = c.Copy();
     m_baseIndexes = new List<int>(baseIndexes);
     m_baseIndexes.Sort();
     m_dMin = dMin.Copy();
     m_dMax = dMax.Copy();
 }
开发者ID:glebmikulko,项目名称:informatics-labs,代码行数:10,代码来源:SimplexMethodDualModification.cs

示例7: QuadraticProgrammingProblem

 public QuadraticProgrammingProblem(Matrix a, /*Matrix b, */Matrix c, Matrix d, Matrix x, IEnumerable<int> jBasis, IEnumerable<int> jStar)
 {
     _a = a.Copy();
     //_b = b.Copy();
     _c = c.Copy();
     _d = d.Copy();
     _x = x.Copy();
     _jBasis = new List<int>(jBasis);
     _jStar = new List<int>(jStar);
 }
开发者ID:glebmikulko,项目名称:informatics-labs,代码行数:10,代码来源:QuadraticProgrammingProblem.cs

示例8: SimplexMethodGeneralIteration

 public SimplexMethodGeneralIteration(Matrix a,  Matrix b, Matrix c, Matrix xBase, List<int> baseIndexes)
 {
     m_matrixA = a.Copy();
     if (b != null)
     {
         m_matrixB = b.Copy();
     }
     m_matrixC = c.Copy();
     m_xBaseVector = xBase.Copy();
     m_baseIndexes = new List<int>(baseIndexes);
     m_baseIndexes.Sort();
 }
开发者ID:glebmikulko,项目名称:informatics-labs,代码行数:12,代码来源:SimplexMethodGeneralIteration.cs

示例9: Generate

        /// <summary>Generates.</summary>
        /// <param name="matrix">The matrix.</param>
        public void Generate(Matrix matrix)
        {
            // generate centered matrix
            // (using a copy since centering is in place)
            this.X = matrix.Copy().Center(VectorType.Col);

            // compute eigen-decomposition
            // of covariance matrix
            var eigs = this.X.Covariance().Eigs();
            this.Eigenvalues = eigs.Item1;
            this.Eigenvectors = eigs.Item2;
        }
开发者ID:ChewyMoon,项目名称:Cupcake,代码行数:14,代码来源:PCA.cs

示例10: button1_Click

        private void button1_Click(object sender, EventArgs e)
        {
            m_richTextBox.Text = "";
            var r = new Random();
            //var m1 = new Matrix(2, 2);
            //m1[0, 0] = 0; m1[0, 1] = 1;
            //m1[1, 0] = 1; m1[1, 1] = 0;
            //var m1 = new Matrix(3, 3);
            //m1[0, 0] = 0; m1[0, 1] = -2; m1[0, 2] = 4;
            //m1[1, 0] = 0; m1[1, 1] = -4; m1[1, 2] = -1;
            //m1[2, 0] = -4; m1[2, 1] = -3; m1[2, 2] = 3;
            //var m1 = new Matrix(5, 5);
            //m1[0, 0] = 2; m1[0, 1] = 1; m1[0, 2] = 4; m1[0, 3] = -3; m1[0, 4] = 0.000001;
            //m1[1, 0] = 1; m1[1, 1] = -1; m1[1, 2] = 2; m1[1, 3] = 2; m1[1, 4] = 1;
            //m1[2, 0] = 3; m1[2, 1] = 0; m1[2, 2] = 6; m1[2, 3] = -1; m1[2, 4] = 1;
            //m1[3, 0] = 1; m1[3, 1] = 1; m1[3, 2] = 1; m1[3, 3] = 1; m1[3, 4] = 1;
            //m1[4, 0] = 2; m1[4, 1] = 4; m1[4, 2] = -1; m1[4, 3] = 0; m1[4, 4] = 2;

            var m1 = new Matrix(4, 4);
            m1[0, 0] = 2; m1[0, 1] = 1; m1[0, 2] = 4; m1[0, 3] = 0;
            m1[1, 0] = 1; m1[1, 1] = -1; m1[1, 2] = 2; m1[1, 3] = 1.00001;
            m1[2, 0] = 3; m1[2, 1] = 0; m1[2, 2] = 6; m1[2, 3] = 1;
            m1[3, 0] = 1; m1[3, 1] = 1; m1[3, 2] = 1; m1[3, 3] = 0;

            //for (int i = 0; i < m1.RowsCount; i++)
            //{
            //    for (int j = 0; j < m1.ColumnsCount; j++)
            //    {
            //        m1[i, j] = r.Next(-5, 5);
            //    }
            //}

            m_richTextBox.Text += "A\n";
            m_richTextBox.Text += m1.ToString();

            Matrix minv;
            try
            {
                minv = m1.Copy().Invert();
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
                return;
            }

            m_richTextBox.Text += "B\n";
            m_richTextBox.Text += minv.ToString();
            m_richTextBox.Text += "AB=\n";
            m_richTextBox.Text += m1.Multiply(minv).ToString();
        }
开发者ID:glebmikulko,项目名称:informatics-labs,代码行数:51,代码来源:Form1.cs

示例11: IncreaseDimensions

 /// <summary>
 /// Adds a specified number of polynomial features to the training set Matrix.
 /// </summary>
 /// <param name="x">Training set</param>
 /// <param name="polynomialFeatures">Number of polynomial features to add</param>
 /// <returns></returns>
 public static Matrix IncreaseDimensions(Matrix x, int polynomialFeatures)
 {
     Matrix Xtemp = x.Copy();
     int maxCols = Xtemp.Cols;
     for (int j = 0; j < maxCols - 1; j++)
     {
         for (int k = 0; k <= polynomialFeatures; k++)
         {
             for (int m = 0; m <= k; m++)
             {
                 Vector v = (Xtemp[j, VectorType.Col].ToVector() ^ (double)(k - m)) * (Xtemp[j + 1, VectorType.Col] ^ (double)m).ToVector();
                 Xtemp = Xtemp.Insert(v, Xtemp.Cols - 1, VectorType.Col);
             }
         }
     }
     return Xtemp;
 }
开发者ID:sethjuarez,项目名称:numl,代码行数:23,代码来源:LogisticRegressionGenerator.cs

示例12: Cholesky

        /// <summary>Cholesky Factorization of a Matrix.</summary>
        /// <exception cref="InvalidOperationException">Thrown when the requested operation is invalid.</exception>
        /// <exception cref="SingularMatrixException">Thrown when a Singular Matrix error condition occurs.</exception>
        /// <param name="m">Input Matrix.</param>
        /// <returns>Cholesky Faxtorization (R.T would be other matrix)</returns>
        public static Matrix Cholesky(Matrix m)
        {
            if (m.Rows != m.Cols)
            {
                throw new InvalidOperationException("Factorization requires a symmetric positive semi-definite matrix!");
            }

            var n = m.Rows;
            var A = m.Copy();

            for (var k = 0; k < n; k++)
            {
                if (A[k, k] <= 0)
                {
                    throw new SingularMatrixException("Matrix is not symmetric positive semi-definite!");
                }

                A[k, k] = Math.Sqrt(A[k, k]);
                for (var j = k + 1; j < n; j++)
                {
                    A[j, k] = A[j, k] / A[k, k];
                }

                for (var j = k + 1; j < n; j++)
                {
                    for (var i = j; i < n; i++)
                    {
                        A[i, j] = A[i, j] - A[i, k] * A[j, k];
                    }
                }
            }

            // put back zeros...
            for (var i = 0; i < n; i++)
            {
                for (var j = i + 1; j < n; j++)
                {
                    A[i, j] = 0;
                }
            }

            return A;
        }
开发者ID:ChewyMoon,项目名称:Cupcake,代码行数:48,代码来源:MatrixStatics.cs

示例13: EigenDecomp

        private Matrix EigenDecomp(Matrix M)
        {
            Matrix shift = MatrixFactory.IdentityMatrix(M.Height) * ComputeShift(M);
            QRDecomposition qr = (M - shift).QR();
            Matrix Eigenvector = qr.Q;

            for (int i = 0; i < Constants.ITERATION_DEPTH; i++) {
                M = qr.R * qr.Q + shift;
                shift = MatrixFactory.IdentityMatrix(M.Height) * ComputeShift(M);
                qr = (M - shift).QR();

                Eigenvector *= qr.Q;

                if (M.IsDiagonal()) {
                    break;
                }
            }
            D = M.Copy();
            return Eigenvector;
        }
开发者ID:DonDoff,项目名称:Maths,代码行数:20,代码来源:SVD.cs

示例14: Generate

        /// <summary>Generate Linear Regression model based on a set of examples.</summary>
        /// <param name="X">The Matrix to process.</param>
        /// <param name="y">The Vector to process.</param>
        /// <returns>Model.</returns>
        public override IModel Generate(Matrix X, Vector y)
        {
            this.Preprocess(X);

            // copy matrix
            Matrix copy = X.Copy();

            // add intercept term
            copy = copy.Insert(Vector.Ones(copy.Rows), 0, VectorType.Col);

            // create initial theta
            Vector theta = Vector.Rand(copy.Cols);

            // run gradient descent
            var optimizer = new numl.Math.Optimization.Optimizer(theta, this.MaxIterations, this.LearningRate)
            {
                CostFunction = new numl.Math.Functions.Cost.LinearCostFunction()
                {
                    X = copy,
                    Y = y,
                    Lambda = this.Lambda,
                    Regularizer = new numl.Math.Functions.Regularization.L2Regularizer()
                }
            };

            optimizer.Run();

            // once converged create model and apply theta

            LinearRegressionModel model = new LinearRegressionModel()
            {
                Descriptor = this.Descriptor,
                NormalizeFeatures = base.NormalizeFeatures,
                FeatureNormalizer = base.FeatureNormalizer,
                FeatureProperties = base.FeatureProperties,
                Theta = optimizer.Properties.Theta
            };

            return model;
        }
开发者ID:sethjuarez,项目名称:numl,代码行数:44,代码来源:LinearRegressionGenerator.cs

示例15: TransformBack

		public Matrix TransformBack(Matrix m)
		{
			var res = m.Copy();
			var sizes = new int[steps, 2];
			sizes[0, 0] = m.Rows;
			sizes[0, 1] = m.Columns;
			for (var i = 1; i < steps; i++)
			{
				sizes[i, 0] = sizes[i - 1, 0]/2;
				sizes[i, 1] = sizes[i - 1, 1]/2;
			}
			var stepsLeft = steps;
			while (stepsLeft-- > 0)
			{
				var rows = sizes[stepsLeft, 0];
				var cols = sizes[stepsLeft, 1];
				for (var c = 0; c < cols; c++)
				{
					var tempIn = new double[rows];
					for (var r = 0; r < rows; r++)
						tempIn[r] = res.MatrixData[r][c];
					var tempOut = TransformBackStep(tempIn);
					for (var r = 0; r < rows; r++)
						res.MatrixData[r][c] = tempOut[r];
				}
				for (var r = 0; r < rows; r++)
				{
					var tempIn = new double[cols];
					for (var c = 0; c < cols; c++)
						tempIn[c] = res.MatrixData[r][c];
					var tempOut = TransformBackStep(tempIn);
					for (var c = 0; c < cols; c++)
						res.MatrixData[r][c] = tempOut[c];
				}
			}
			return res;
		}
开发者ID:khairy-mohamed,项目名称:FindSimilar,代码行数:37,代码来源:Dwt.cs


注:本文中的Matrix.Copy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。