numl.Math.LinearAlgebra.Matrix.Diag C# (CSharp) Method

Diag() public static method

Diagrams the given m.
public static Diag ( Matrix m ) : Vector
m Matrix Input Matrix.
return Vector
        public static Vector Diag(Matrix m)
        {
            var length = m.Cols > m.Rows ? m.Rows : m.Cols;
            var v = Vector.Zeros(length);
            for (int i = 0; i < length; i++)
                v[i] = m[i, i];
            return v;
        }

Usage Example

示例#1
0
        /// <summary>Sorts this object.</summary>
        private void Sort()
        {
            //ordering
            var eigs = A.Diag()
                       .Select((d, i) => new Tuple <int, double>(i, d))
                       .OrderByDescending(j => j.Item2)
                       .ToArray();

            // sort eigenvectors
            var copy = V.Copy();

            for (var i = 0; i < eigs.Length; i++)
            {
                copy[i, VectorType.Col] = V[eigs[i].Item1, VectorType.Col];
            }

            // normalize eigenvectors
            copy.Normalize(VectorType.Col);
            V = copy;

            Eigenvalues = eigs.Select(t => t.Item2).ToArray();
        }
All Usage Examples Of numl.Math.LinearAlgebra.Matrix::Diag