添加矩阵和数组

时间:2017-10-31 08:49:56

标签: java arrays matrix

我目前正在尝试使用数组添加矩阵。

这是我现在的代码:

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];
        }
    }

}

我很感激我能得到任何帮助,谢谢!

3 个答案:

答案 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++) {返回 如果我们获取第一个数组,它将返回第一个数组中每个数组的值,它将返回24以及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]