是否可以将std ::函数应用于特征矩阵的每个元素
Is there a way to apply a std::function to each element of an EIGEN matrix?
我有一个eigen :: matrixxd,我想通过应用功能组件来修改其所有元素。例如:
MatrixXd m = ...;
std::function<double(double)> f = ...
m1 = m.apply(f);
有没有办法实现此结果?`
unaryExpr
模板成员函数使用呼叫运算符(函数指针,函数,lambda, std::function
),并将其应用于矩阵的每个元素。请记住,矩阵不能别名!
#include <functional>
#include <iostream>
#include <Eigen/Core>
double square(double x)
{
return x*x;
}
int main()
{
Eigen::MatrixXd m = Eigen::MatrixXd::Random(2,2);
std::cout << m << "n";
std::function<double(double)> func = square;
m = m.unaryExpr(func);
std::cout << m << "n";
}
您可以始终以双重循环含义:
for (int j1; j1 < m.rows(); j1++){
for (int j2; j2 < m.cols(); j2++){
m(j1, j2) = f(m(j1, j2));
}
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 设置负元素特征稀疏向量C++
- 将元素从opencv矩阵复制到特征矩阵
- Lambda 函数在特征中按元素方向
- 将函数应用于特征矩阵中的所有元素,而无需循环
- 特征:类似 numpy 的元素索引
- 特征稀疏矩阵的 CoeffRef 中的错误,元素类型为向量
- 使用特征C++库将每个矩阵列乘以每个向量元素
- 射影几何形状 - 使用特征元素在3D中找到平面
- C 特征库:具有从行矢量的元素的mutliplying向量
- 是否可以将std ::函数应用于特征矩阵的每个元素
- 使用特征元素修改零表达的值
- C++ 特征 - 如何将广播和元素操作结合起来
- 特征C++稀疏矩阵的元素乘积和除法
- 特征:矩阵中的散射元素
- 无法访问特征线性系统解的元素
- 将函数应用于所有特征矩阵元素
- 无循环的特征元素操作
- 根据向量元素的特征对向量进行排序