java - 将矩阵和 double 组解析为 la4j 对象

标签 java arrays matrix

我已经进行了实验,但找不到将整数数组和 double 矩阵解析为 la4j 矩阵/vector 对象的方法。

public void fillData(int[][] data2D, int height, int width) throws IOException{
    int[] data = initializeData(height, width);
    double [][] coordinates = initializeDataCoordinates(height, width);
    Matrix a = new Basic2DMatrix();

    int index1d = 0;
    for(int row = 0; row < height; row++){
        for(int col = 0; col < width; col++){
            int y = col+1;
            int x = row+1;
            //System.out.println("Current X: " + x);
            //System.out.println("Current Y: " + y);
            double xPow = Math.pow(x, 2);
            double yPow = Math.pow(y, 2);

            coordinates[row][0] = xPow*yPow;
            coordinates[row][1] = x*yPow;
            coordinates[row][2] = yPow;
            coordinates[row][3] = xPow*y;
            coordinates[row][4] = x*y;
            coordinates[row][5] = y;
            coordinates[row][6] = xPow;
            coordinates[row][7] = x;
            coordinates[row][8] = 1;

            a.add((double)data2D[row][col]);

            data[index1d] = data2D[row][col];
            index1d++;
        }
    }
}

如您所见,我尝试使用 la4j 库的 add 方法,但矩阵仍为空。我的目标是将 double[][] 坐标和 int[] 数据的全部内容分别解析为 la4j 矩阵和 vector 。

我也尝试将它们解析为 CSV 文件,但科学记数法(由于我的坐标矩阵中的数字非常大)我无法正确解析它。

有什么建议和想法吗?

最佳答案

事情是这样的。首先,只需调用构造函数 new Basic2DMatrix() 即可创建 0x0 矩阵。其次,matrix.add是加法运算,而不是插入到矩阵中(例如矩阵加其他矩阵,或者在您的情况下矩阵加值)。调用matrix.add(value)将给定值添加到所有单元格。在你的情况下,你的矩阵中没有细胞=什么也没发生。您所需要做的就是调用构造函数并向其中传递坐标数组。

Matrix a = new Basic2DMatrix(coordinates); // easy-peasy

您还可以使用 get/set 等公共(public)访问方法来手动设置每个元素。

关于java - 将矩阵和 double 组解析为 la4j 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26745332/

相关文章:

arrays - 修改现有函数以处理不同维度/结构的数组

c - 尝试列出数组内容时出现无法解释的格式

java - 如何在Java中使用通用接口(interface)获取实现类中的方法

java - 为什么这个 if 语句总是返回 true?

java - 将多节点 ArrayList 添加到 Firebase 实时数据库

java - 我正在使用命令make进行编译。它在Linux中显示错误127

php - 这个 foreach 循环返回双倍的结果

r - 对按列名分组但将所有列保留在 R 中的行值求和?

python - cv2.getPerspectiveTransform 中的矩阵未正确转换点

r - 过滤逻辑和对称矩阵