Как вызвать lpNorm
с матричной матрицей в качестве ввода?
Вот проблема из моего кода:
template<class number>
void normalize_in_place(Matrix<number,Dynamic,Dynamic> & A, level l, axis a){
const int p = lp_norms::level2pvalue(l);
switch ( a ) {
case row:
// TODO: get lpnorm working.
A = A.transpose().cwiseQuotient(A.rowwise().lpNorm<p>()).transpose();
//A = A.transpose().cwiseQuotient(A.rowwise().norm()).transpose();
break;
case col:
// TODO: get lpnorm working.
//A = A.cwiseQuotient(A.colwise().lpNorm<p>());
A = A.cwiseQuotient(A.colwise().norm());
break;
}
}
Ошибка при компиляции с:
ошибка: ожидаемое первичное выражение перед [закрыть скобки функции lpNorm]
, где я подставил скобки для стрелки, которую вы увидите на выходе компилятора.
** После обновления собственного значения в выпуске от 23 июля я получаю следующую ошибку:
ошибка: недопустимые операнды типов '' и оператор 'const int' в двоичный '<'A = A.transpose (). CwiseQuotient (A.rowwise (). LpNorm <p>()). Transpose ();
По-видимому, lpNorm
не разрешается;Однако я включил Eigen/Dense
, и стандарт .norm()
работает.
Независимо от того, какую конфигурацию я использую, она не работает.
Как правильно назвать lpNorm
?