小编Leo*_*tis的帖子

使用Rcpp中随机生成的值填充向量的一部分

我试图在Rcpp中编写一个Sequential Monte Carlo函数,我遇到了以下问题:

我通过以下方式创建了一个向量:

  NumericVector R_t(Part*Ttau);
Run Code Online (Sandbox Code Playgroud)

我想填充矢量的部分块.应该是这样的:

for (int i=0;i<Part;i++){
        R_t[i]=runif(1,0,2);
}
Run Code Online (Sandbox Code Playgroud)

我第二次想拥有

for (int i=Part+1;i<2*Part;i++){
            R_t[i]=runif(1,0,2);
}
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.我可以在每次迭代中用新的值替换旧值,但是每次迭代我都需要旧的值.当我尝试编译时,我收到以下错误:

cannot convert 'Rcpp::NUmericVector {aka Rcpp::Vector<14, Rcpp::PrserveStorage>}' to 'Rcpp::traits::storage_type<14>:: type {aka double}' in assignment
Run Code Online (Sandbox Code Playgroud)

使用尺寸为Part和Ttau的二维矩阵替换矢量会更容易吗?我想避免这最后一个选择.

很抱歉,如果这已经得到解答,但我没有找到任何接近这个的rcpp

c++ r rcpp

2
推荐指数
1
解决办法
692
查看次数

计算Hawk过程梯度的有效方法

我有兴趣计算以下数量

B(i) = \sum_{j < i}(x_i-x_j)exp^{-\beta(x_i - x_j)}

这是计算Hawk过程可能性的一个参数的梯度的一部分(更多信息可以在这里找到:http://www.ism.ac.jp/editsec/aism/pdf/031_1_0145.pdf).

Beta只是解决问题的常数,x_i是我的第i个数据点.

我试图使用以下代码块计算RCPP中的上述数量:

for( int i = 1; i< x.size();i++) {
    double temp=0;
    for(int j=0; j<=i-1;j++){
      temp+=(x[i]-x[j])*exp(-beta*(x[i]-x[j]));

    }
Run Code Online (Sandbox Code Playgroud)

但效率极低且速度慢.关于如何加速这个公式的任何建议?

r rcpp

2
推荐指数
1
解决办法
112
查看次数

MethodError: 没有方法匹配 isless(::Symbol, ::Int64)

我正在尝试在 Julia 中构建一个 Dirichlet Process Gibbs Sampler,并将每个集群表示为一个对象。我做了以下事情:

using BayesianNonparametrics
using DataFrames
using Distances

type cluster
    m::Vector
    Sigma::LinAlg.Cholesky
    nu::Int
    kappa::Int
    nk::Int
  end

function logPredPdf(f::cluster,x::Array{Float64,1}):

  kappa <- f.kappa
  S <- f.Sigma
  mu <- f.m
  nu <- f.nu

  d <- size(x)[1]
  v = nu-d+1
  U = sqrt((1+1/kappa)/v) * LinAlg.lowrankdowndate!(S, sqrt(f.kappa)*mu)[:U]

  x = x - m
  Q = \(transpose(U),x)
  q= vecdot(Q,Q)
  o = -log(1+q/v)*((v+d)/2)
  c = lgamma((v+d)/2)-lgamma(v/2)-(d*log(v*pi)+2*sum(log(diag(U))))/2
  y = c + o

  return y
end

data = readtable("PCA_transformed_data_gt1000.csv",header= true);
data = delete!(data, :1);
n,d …
Run Code Online (Sandbox Code Playgroud)

julia

1
推荐指数
1
解决办法
2714
查看次数

标签 统计

r ×2

rcpp ×2

c++ ×1

julia ×1