繁体   English   中英

有R代码段,要在C ++中执行

[英]Have R code snippet, Want to execute in C++

我有一个我想在正在开发的C ++程序中执行的技术论文中的以下R代码片段。

for(i in 1:m)
w[i] <- 1/sum(exp(L-L[i]))

我已经有了向量L,据我的理解,LL [i]表示L [1] -L [i],L [2] -L [i]到L [i]的集合。 对我来说,这意味着:

w[0] = 1/sum(exp(L[0]-L[0]))
w[1] = 1/sum( c(exp(L[0]-L[1]),exp(L[1]-L[1]))  )

我不确定如何在C ++中执行此操作。

您可以执行以下操作:

#include <vector>
#include <cmath>

std::vector<double> func(const std::vector<double> &L)
{
    std::vector<double> w;
    double sum;
    for (int i = 0, endi = L.size(); i < endi; ++i)
    {
        sum = 0.0;
        for (int j = 0, endj = i; j < endj; ++j)
        {
            sum += exp(L[j]-L[i]);
        }
        w.push_back(1.0/sum);
    }
    return w;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM