0

我想将非负整数矩阵转换为二进制矩阵。例如,给定以下输入矩阵:

2 3
0 1

它应该是以下输出矩阵:

1 1
0 1

我认为这类似于 map 操作,因此在伪代码方面,此操作等同于mapElements(x -> (x > 0) ? 1 : 0)或简单地mapNonZeroes(x -> 1).

一种可能的方法是将矩阵的非零元素展开为值设置为 0/1 的三元组,并从三元组重建矩阵。有一个更好的方法吗?

4

1 回答 1

1

对我来说,有效的是直接访问nz_values存储字段,并自己映射值。

public void normalizeMatrix(DMatrixSparseCSC m) {
    for (int i = 0; i < m.nz_length; i++) {
        m.nz_values[i] = Math.min(m.nz_values[i], 1.0);
    }
}
于 2019-03-14T17:00:16.120 回答