对于MATLAB中的矩阵A和行'i',我将执行以下操作:
A(i,:) = zeros(size(A(i,:));
执行相同操作的一种愚蠢方法是迭代整行并将非零值设置为零。这不合适,因为我在这里使用大型矩阵(200,000+列)。
有一种简单快捷的方法吗?我在Eigen中使用SparseMatrix类。我也知道每行最多有3个非零值。我不知道在哪里。
我需要这个来用新值编辑矩阵中的几个行。我的想法是,我首先将整行设为零,然后将我的值分配给同一行中的某些元素。
StackOverflow上的以下question是相关的,但遗憾的是没有答案。
答案 0 :(得分:0)
上面的Matlab代码的等价物可以使用setZero函数实现,如下所示:
A.row(i).setZero();
请注意,这适用于密集矩阵,而不是稀疏矩阵。如果您希望大小是动态的,建议使用MatrixXd类。