有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

添加矩阵和数组的java

我目前正在尝试添加一个带有数组的矩阵

这是我现在掌握的代码:

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) 个答案

  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. # 2 楼答案

    如果想添加矩阵,可以在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]
    
  3. # 3 楼答案

    在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++) {返回 值乘以第一个循环中每个数组的值如果我们使用第一个数组,它将返回245