我目前正在尝试使用数组添加矩阵。
这是我现在的代码:
public void add(Matrix m) {
for(int i = 0; i == values.length; i++) {
for(int j = 0; j == values.length; j++) {
m.values[i][j] = m.values[i][j] + values[i][j];
}
}
}
我很感激我能得到任何帮助,谢谢!
答案 0 :(得分:2)
在Java语言中,没有矩阵或2D或nD数组的字,有一个数组数组。
关于你的问题试试这个:
for (int i = 0; i < values.length; i++) {
for (int j = 0; j < values[i].length; j++) {
for (int i = 0; i < values.length; i++) {
返回
数组{ 2, 4, 5 }
和{ 3, 7, 2 }
以及{ -2, 0, 1
}和{ 5, 1, 1 }
for (int j = 0; j < values[i].length; j++) {
返回
如果我们获取第一个数组,它将返回第一个数组中每个数组的值,它将返回2
和4
以及5
答案 1 :(得分:1)
检查数组和矩阵的尺寸是否相同。
public void add(Matrix m) {
for(int i = 0; i < values.length; i++) {
for(int j = 0; j < values[i].length; j++) {
m.values[i][j] = m.values[i][j] + values[i][j];
}
}
}
答案 2 :(得分:1)
如果要添加矩阵,可以在Java中使用循环,也可以使用流。这是使用流添加矩阵的示例实现:
public class MatrixOperations {
public static double[][] add(double[][] a, double[][] b) {
return range(0, a.length).boxed().collect(
() -> new double[a.length][a[0].length], // create the accumulator matrix which is to be returned
(acc, row) -> range(0, a[row].length).forEach(col -> acc[row][col] = a[row][col] + b[row][col]), // sum each value
(acc, r) -> {}); // ignore
}
// Test method
public static void main(String[] args) {
double[][] a = {{1.0, 3.0}, {1.0, 0.0}, {1.0, 2.0}};
double[][] b = {{.0, .0}, {7.0, 5.0}, {2.0, 1.0}};
double[][] sum = add(a, b);
Stream.of(sum).map(Arrays::toString).forEach(System.out::println);
}
}
如果您运行此类,您将获得以下输出:
[1.0, 3.0]
[8.0, 5.0]
[3.0, 3.0]