当前位置: 首页>>代码示例>>C++>>正文


C++ VectorXd::cwise方法代码示例

本文整理汇总了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;
}
开发者ID:xufango,项目名称:contrib_bk,代码行数:40,代码来源:lwr.cpp

示例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;
}
开发者ID:LabShare,项目名称:IMOD,代码行数:15,代码来源:svlStatsUtils.cpp


注:本文中的VectorXd::cwise方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。