计算特征::矩阵符号()的最佳方法 因为本征C++库不包含计算矩阵的符号(x)< /代码>的内置方法,所以我在寻找最佳的方法。有关sign()的定义,请参见,尽管我并不需要0元素的大小写。我想出的方法如下 Eigen::MatrixXf a=Eigen::MatrixXf(2,2); a=0)。选择(正、负); std::cout
如何计算特征::矩阵符号()的最佳方法 因为本征C++库不包含计算矩阵的符号(x)< /代码>的内置方法,所以我在寻找最佳的方法。有关sign()的定义,请参见,尽管我并不需要0元素的大小写。我想出的方法如下 Eigen::MatrixXf a=Eigen::MatrixXf(2,2); a=0)。选择(正、负); std::cout,c++,math,matrix,eigen,C++,Math,Matrix,Eigen,如何unaryExpr double sign_func(double x) { if (x > 0) return +1.0; else if (x == 0) return 0.0 else return -1.0; } int main() { Eigen::MatrixXf a = Eigen::MatrixXf(2,2); a << -0.5, 1.0,
unaryExpr
double sign_func(double x)
{
if (x > 0)
return +1.0;
else if (x == 0)
return 0.0
else
return -1.0;
}
int main()
{
Eigen::MatrixXf a = Eigen::MatrixXf(2,2);
a << -0.5, 1.0,
0.3, -1.4;
std::cout << a.unaryExpr(std::ptr_fun(sign_func)) << std::endl;
return 0;
}
双符号函数(双x)
{
如果(x>0)
回报率+1.0;
else如果(x==0)
返回0.0
其他的
回报率-1.0;
}
int main()
{
本征::矩阵xxf a=本征::矩阵xxf(2,2);
aunaryExpr
怎么样
double sign_func(double x)
{
if (x > 0)
return +1.0;
else if (x == 0)
return 0.0
else
return -1.0;
}
int main()
{
Eigen::MatrixXf a = Eigen::MatrixXf(2,2);
a << -0.5, 1.0,
0.3, -1.4;
std::cout << a.unaryExpr(std::ptr_fun(sign_func)) << std::endl;
return 0;
}
双符号函数(双x)
{
如果(x>0)
回报率+1.0;
else如果(x==0)
返回0.0
其他的
回报率-1.0;
}
int main()
{
本征::矩阵xxf a=本征::矩阵xxf(2,2);
a怎么样
X = X.array().sign();
怎么样
X = X.array().sign();
有什么问题吗?没有这样的函数可用(Egeng 3.2.6)。不管怎样,它看起来是在2015年11月25日添加的,那么呢。Egeng::MatrixXi a_sign=a.unaryExpr([](float in){return in有什么问题?没有这样的函数可用(Egeng 3.2.6)好吧,看起来它是在2015年11月25日添加的,不管怎样,那么呢。Eigen::MatrixXi a_sign=a.unaryExpr([](float in){return in