Click or drag to resize

DoubleMatrixItem Property (String, Int32)

Gets or sets the elements of this instance corresponding to the specified row and column indexes.

Namespace:  Novacta.Analytics
Assembly:  Novacta.Analytics (in Novacta.Analytics.dll) Version: 2.0.0
Syntax
public DoubleMatrix this[
	string rowIndexes,
	int columnIndex
] { get; set; }

Parameters

rowIndexes
Type: SystemString
The zero-based row indexes of the elements to get or set. The value must be ":", which means that all valid row indexes are specified.
columnIndex
Type: SystemInt32
The zero-based column index of the elements to get or set.

Property Value

Type: DoubleMatrix
A tabular collection formed by the entries corresponding to the specified row and column indexes.

Implements

IReadOnlyTabularCollectionTValue, TCollectionItemString, Int32
ITabularCollectionTValue, TCollectionItemString, Int32
Exceptions
ExceptionCondition
ArgumentNullExceptionrowIndexes is null.
-or-
value is null.
ArgumentOutOfRangeExceptionrowIndexes is not a string reserved for collection sub-referencing.
-or-
columnIndex is less than zero.
-or-
columnIndex is greater than or equal to the number of columns of this instance.
ArgumentException The number of rows in value is not equal to the to the number of rows of this instance.
-or-
The number of columns in value is greater than 1.
Remarks

When setting elements simultaneously, the value must be a tabular collection having a number of rows equal to the number of specified row indexes, and a number of columns equal to the number of specified column indexes.

Examples

In the following example, some matrix elements are simultaneously accessed.

C#
using System;

namespace Novacta.Analytics.CodeExamples
{
    public class MatrixIndexerExample20  
    {
        public void Main()
        {
            // Create a matrix.
            var data = new double[12] {
                1, 5,  9,
                2, 6, 10,
                3, 7, 11,
                4, 8, 12
            };
            var matrix = DoubleMatrix.Dense(4, 3, data, StorageOrder.RowMajor);
            Console.WriteLine("Initial data matrix:");
            Console.WriteLine(matrix);

            // Specify all row indexes.
            var rowIndexes = ":";
            Console.WriteLine();
            Console.WriteLine("Row indexes: from 0 to {0}", matrix.NumberOfRows - 1);

            // Specify a column index.
            int columnIndex = 0;
            Console.WriteLine();
            Console.WriteLine("Column index: {0}", columnIndex);

            // Specify the value matrix.
            var valueData = new double[4] {
                -10,
                -20,
                -30,
                -40
            };
            var value = DoubleMatrix.Dense(4, 1, valueData, StorageOrder.RowMajor);
            Console.WriteLine();
            Console.WriteLine("Value matrix:");
            Console.WriteLine(value);

            // Set the entries having the specified indexes to the value matrix.
            matrix[rowIndexes, columnIndex] = value;

            Console.WriteLine();
            Console.WriteLine("Updated data matrix:");
            Console.WriteLine(matrix);

            // Entries can also be accessed using a read-only wrapper 
            // of the matrix.
            ReadOnlyDoubleMatrix readOnlyMatrix = matrix.AsReadOnly();

            Console.WriteLine();
            Console.WriteLine("Updated matrix entries:");
            Console.WriteLine(readOnlyMatrix[rowIndexes, columnIndex]);
        }
    }
}

// Executing method Main() produces the following output:
// 
// Initial data matrix:
// 1                5                9                
// 2                6                10               
// 3                7                11               
// 4                8                12               
// 
// 
// 
// Row indexes: from 0 to 3
// 
// Column index: 0
// 
// Value matrix:
// -10              
// -20              
// -30              
// -40              
// 
// 
// 
// Updated data matrix:
// -10              5                9                
// -20              6                10               
// -30              7                11               
// -40              8                12               
// 
// 
// 
// Updated matrix entries:
// -10              
// -20              
// -30              
// -40              
// 

See Also