java - 在稀疏矩阵的情况下,EJML reshape 函数是否有效?

标签 java matrix reshape ejml

我想动态更改稀疏矩阵维度。然而,我关心的是效率。此操作是否将第一个矩阵的所有内容复制到更大的矩阵中?在这种情况下,例如将矩阵维度增加 100 会是一个更好的主意吗? java 文档似乎没有讨论这种情况下的效率。

最佳答案

它不会复制值并且应该非常快。它确实用零填充列索引,因为这是稀疏格式所必需的。

@Override
public void reshape( int numRows , int numCols , int arrayLength ) {
    // OK so technically it is sorted, but forgetting to correctly set this flag is a common mistake so
    // decided to be conservative and mark it as unsorted so that stuff doesn't blow up
    this.indicesSorted = false;
    this.numRows = numRows;
    this.numCols = numCols;
    growMaxLength( arrayLength , false);
    this.nz_length = 0;

    if( numCols+1 > col_idx.length ) {
        col_idx = new int[ numCols+1 ];
    } else {
        Arrays.fill(col_idx,0,numCols+1,0);
    }
}

关于java - 在稀疏矩阵的情况下,EJML reshape 函数是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57341245/

相关文章:

python - 在没有多重索引的情况下分割 Pandas 系列

arrays - Julia:为什么需要在 reshape 数组后收集输出?

java - 将 hibernate 查询结果转换为类类型的对象而不是列表数组

c - 从 C 中的文本文件中读取矩阵的空格分隔浮点值

java - 如何将类的Java对象返回到R中(使用rjava包)

matlab - 矩阵 "Zigzag"重新排序

r - 制作特定结构的矩阵

r - 重新排列数据框,以便将行剪切并粘贴为列

java - 事件委托(delegate)模型和事件继承模型有什么区别?

java - JSON/GSON 将 key 更改为 Java