У меня проблема с классом матрицы.Мне нужно написать несколько методов и на самом деле застрял.Мой класс выглядит следующим образом:
public class Matrix {
private double[] data;
private int rows;
private int cols;
public Matrix(int rows, int cols){
this.rows = rows;
this.cols = cols;
data = new double[rows*cols];
}
public Matrix(double[][] data){
int rows = data.length;
int cols = 0;
for(int i = 0; i < data.length; i++){
if(data[i].length > cols)
cols = data[i].length;
}
Matrix matrix = new Matrix(rows, cols);
for(int j = 0; j < rows; j++){
for(int k = 0; k < cols; k++){
if(data[j][k] <= 0)
data[j][k] = 0;
}
}
}
Да, мне нужно, чтобы базовые данные хранились в массиве, и мне нужно создать конструктор, который создает матрицу на основе самой длинной заданной строки, например.
double[][] data = {{1,2,3},{4,5},{6}};
Это создаст матрицу, где есть 3 строки и 3 столбца, а остальная часть моей таблицы должна быть заполнена нулями.Таким образом, окончательная матрица выглядит следующим образом:
1 2 3
4 5 0
6 0 0
Как я могу достичь этого - я имею в виду - как заполнить оставшиеся поля с нулями в этой матрице?Я думал о сравнении, например.
for(int i = 0; i < rows; i++)
for(int j = 0; j < cols; j++)
if(matrix[i][j] == null)
matrix[i][j] = 0;
но это невозможно, как тогда?