ComplexMatrixFindNonzero Method |
Namespace: Novacta.Analytics
Matrix entries are interpreted as well ordered following a column major ordering. The position of an entry in such well ordering is referred to as the linear position of that entry.
In the following example, the nonzero entries of a data matrix are found.
using System; using System.Numerics; namespace Novacta.Analytics.CodeExamples { public class ComplexFindNonzeroExample0 { public void Main() { // Create a matrix. var data = new Complex[6] { new Complex(0, 0), new Complex(5, -5), new Complex(2, -2), new Complex(0, 0), new Complex(0, 0), new Complex(2, -2) }; var matrix = ComplexMatrix.Dense(3, 2, data, StorageOrder.RowMajor); Console.WriteLine("The data matrix:"); Console.WriteLine(matrix); // Find the linear indexes of nonzero entries in data. var indexes = matrix.FindNonzero(); Console.WriteLine(); Console.WriteLine("Linear indexes of nonzero entries in data:"); Console.WriteLine(indexes); // FindNonzero is available for read-only matrices: // find nonzero entries using a read-only wrapper of the data matrix. ReadOnlyComplexMatrix readOnlyMatrix = matrix.AsReadOnly(); indexes = readOnlyMatrix.FindNonzero(); Console.WriteLine(); Console.WriteLine("Using read-only data. Linear indexes of nonzero entries:"); Console.WriteLine(indexes); } } } // Executing method Main() produces the following output: // // The data matrix: // ( 0, 0) ( 5, -5) // ( 2, -2) ( 0, 0) // ( 0, 0) ( 2, -2) // // // // Linear indexes of nonzero entries in data: // 1, 3, 5 // // Using read-only data. Linear indexes of nonzero entries: // 1, 3, 5