The methods:

    double[][] getData();
    double[][] getDataRef();

Provide access to the underlying 2D matrix as a copy or a direct reference.

The method:

   double getEntry(int, int);

Provides access to an element of the matrix.

So you can do for example:

    Array2DRowRealMatrix m = ...;

    int cols = m.getColumnDimension();
    int rows = m.getRowDimension();
    double[][] data = m.getDataRef();
    for (int row = 0; row < rows; row++) {
      for (int column = 0; column < cols; column++) {
        double d = m.getEntry(row, column);
        double d2 = data[row][column];
        assert d == d2;
      }
    }

If you need to visit a part of the matrix then you can use the visitor API.
For example to sum a sub-matrix:

    int startRow = 2;
    int endRow = 5;
    int startColumn = 15;
    int endColumn = 20;
    double sum = m.walkInOptimizedOrder(
        new DefaultRealMatrixPreservingVisitor() {
          double s = 0;
          @Override
          public void visit(int row, int column, double value) {
            s += value;
          }
          @Override
          public double end() {
            return s;
          }
        }, startRow, endRow, startColumn, endColumn);

You can read about the available operations in the API here:

https://commons.apache.org/proper/commons-math/javadocs/api-3.6.1/index.html

Regards,

Alex



On Tue, 16 Feb 2021 at 09:28, Oscar Bastidas <[email protected]>
wrote:

> Hello,
>
> Would someone please tell me how I can go about converting a 'RealMatrix'
> object to an array?  When I just print out the RealMatrix object I get
> something that looks like:
>
>
> Array2DRowRealMatrix{{123},{456},{789}}
>
>
> I would like to be able to selectively cycle through each number
> individually.
>
> Thanks.
>
> Oscar
>
> Oscar Bastidas, Ph.D.
> Postdoctoral Research Associate
> University of Minnesota
>

Reply via email to