Документация JAMA setMatrix должна установить подматрицу в данной матрице

Кто-нибудь может рассказать мне о пакете JAMA MATRIX, как работает setMatrix? Пожалуйста, не предлагайте мне просмотреть документацию. Я несколько раз просматриваю документацию, но не вижу ни одного примера того, как это работает. У меня есть код, в котором я хочу установить подматрицу с желаемой позицией, используя пакет JAMA MATRIX.

Matrix A= new Matrix(new double[][]{{2.0,3.0,5.0},{1.0,0.0,3.0},{0.0,1.0,1.0}});
A.print(9,6);
Matrix A1= new Matrix(new double[][]{{1.0,2.0,2.0}});
int []A2=new int[]{2};
int []A3=new int[]{2};
A.setMatrix(A2, A3, A1);
A.print(9,6);

Я хочу добавить A1 во вторую строку и второй столбец. Но не удается добавить. Два выхода одинаковы. Никакой разницы между ними.


person Encipher    schedule 27.03.2018    source источник


Ответы (1)


Вот пример вашей проблемы.

Код:

public class M1test {
public static void main(String args[]){
    Matrix A= new Matrix(new double[][]{{2.0,3.0,5.0},{1.0,0.0,3.0},{0.0,1.0,1.0}});
    A.print(9,6);
    Matrix A1= new Matrix(new double[][]{{1.0,2.0,2.0}});
    A.setMatrix(2,2,0,2,A1);
    A.print(9,6);
}

}

Объяснение

SetMatrix фактически используется для установки подматрицы. Итак, здесь я хочу заменить последнюю строку моей матрицы A на A1. Итак, A1 — это подматрица, которая будет установлена ​​в A.

Теперь согласно документации

public void setMatrix(int i0,
                  int i1,
                  int j0,
                  int j1,
                  Matrix X)
 Set a submatrix.
 Parameters:
i0 - Initial row index
i1 - Final row index
j0 - Initial column index
j1 - Final column index
X - A(i0:i1,j0:j1)

В моем коде я хочу заменить последнюю строку. Поскольку A представляет собой матрицу 3 * 3, индекс последней строки равен 2. Таким образом, начальный индекс строки равен 2. В подматрице A1 существует только одна строка. Таким образом, конечный индекс строки также равен 2. Начальный индекс столбца равен 0, а конечный индекс столбца равен 2. Поэтому я просто изменил свой код в соответствии с инструкциями. Надеюсь, вы это поймете. Для получения дополнительной информации перейдите по ссылке JAMA Matrix.

Выход:

2.000000   3.000000   5.000000
1.000000   0.000000   3.000000
0.000000   1.000000   1.000000


2.000000   3.000000   5.000000
1.000000   0.000000   3.000000
1.000000   2.000000   2.000000
person Geek    schedule 07.11.2018