как я могу перебирать строки и столбцы разреженной матрицы в Eigen?
У меня есть строка с малой разреженной матрицей, которую я хочу сделать на этих командах Matlab:
г = сумма (Н, 1)
r2 = сумма (Н, 2)
где H - разреженная матрица (0,1), r и r2 - целые векторы. Я думаю, что я должен уметь выполнять итерацию по строке и столбцу, чтобы сделать это. любое предложение будет оценено.
заранее спасибо.
Возможно, вы захотите взглянуть на очень полезную ссылку на преобразование eigen
/matlab
: http://eigen.tuxfamily.org/dox/AsciiQuickReference.txt
В вашем случае это означает:
r = H.colwise().sum() // sum(H, 1)
r2 = H.rowwise().sum() // sum(H, 2)
РЕДАКТИРОВАТЬ
Как вы указали, разреженные матрицы не поддерживают эти функции. Вероятно, вам придется его повторно реализовать. Я предлагаю получить разницу с https://forum.kde.org/viewtopic.php?f=74&t=122971
В вашем примере sum(H, 1)
ее можно записать в виде:
r = H * VectorXd::Ones(H.cols())
H(p==1,2)
? Ты имеешь в виду, что p == 1 или p == 2?