本文整理汇总了C++中VectorXd::cwise方法的典型用法代码示例。如果您正苦于以下问题:C++ VectorXd::cwise方法的具体用法?C++ VectorXd::cwise怎么用?C++ VectorXd::cwise使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VectorXd
的用法示例。
在下文中一共展示了VectorXd::cwise方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: learnWeights
bool LocallyWeightedRegression::learnWeights(const VectorXd &xInputVector, const VectorXd &yTargetVector)
{
if (!initialized_)
{
printf("ERROR: LWR model is not initialized.\n");
return initialized_;
}
if(xInputVector.size() != yTargetVector.size())
{
printf("ERROR: Input (%i) and target (%i) vector have different sizes.\n", xInputVector.size(), yTargetVector.size());
return false;
}
MatrixXd basisFunctionMatrix = MatrixXd::Zero(xInputVector.size(), centers_.size());
if (!generateBasisFunctionMatrix(xInputVector, basisFunctionMatrix))
{
printf("ERROR: Could not generate basis function matrix.\n");
return false;
}
MatrixXd tmpMatrixA = MatrixXd::Zero(xInputVector.size(), numRfs_);
tmpMatrixA = xInputVector.cwise().square() * MatrixXd::Ones(1, numRfs_);
tmpMatrixA = tmpMatrixA.cwise() * basisFunctionMatrix;
VectorXd tmpMatrixSx = VectorXd::Zero(numRfs_, 1);
tmpMatrixSx = tmpMatrixA.colwise().sum();
MatrixXd tmpMatrixB = MatrixXd::Zero(xInputVector.size(), numRfs_);
tmpMatrixB = xInputVector.cwise() * yTargetVector * MatrixXd::Ones(1, numRfs_);
tmpMatrixB = tmpMatrixB.cwise() * basisFunctionMatrix;
VectorXd tmpMatrixSxtd = VectorXd::Zero(numRfs_, 1);
tmpMatrixSxtd = tmpMatrixB.colwise().sum();
double ridgeRegression = 0.0000000001;
thetas_ = tmpMatrixSxtd.cwise() / (tmpMatrixSx.cwise() + ridgeRegression);
return true;
}
示例2: expAndNormalize
// exponentiates and normalizes a vector
void expAndNormalize(VectorXd& v)
{
if (v.size() == 0) return;
double maxValue = v[0];
for (int i = 1; i < v.size(); i++) {
if (v[i] > maxValue)
maxValue = v[i];
}
v = (v.cwise() - maxValue).cwise().exp();
double Z = v.sum();
v /= Z;
}