Ich versuche, eine Sequential Monte Carlo Funktion in RCPP zu schreiben, und ich mit folgendem Problem:Füllen Sie einen Teil eines Vektors mit zufällig ermittelten Werten in RCPP
Ich habe einen Vektor, den die folgende Art und Weise erstellt:
NumericVector R_t(Part*Ttau);
und ich möchte NUR Teilblöcke des Vektors füllen. Es sollte wie sein:
for (int i=0;i<Part;i++){
R_t[i]=runif(1,0,2);
}
und das zweite Mal, dass ich
for (int i=Part+1;i<2*Part;i++){
R_t[i]=runif(1,0,2);
}
haben möchte Aber es scheint nicht zu funktionieren. Ich könnte die alten Werte in jeder Iteration durch die neuen ersetzen, aber ich brauche die alten für jede Iteration. Wenn ich zu kompilieren versuchen, erhalte ich folgende Fehlermeldung:
cannot convert 'Rcpp::NUmericVector {aka Rcpp::Vector<14, Rcpp::PrserveStorage>}' to 'Rcpp::traits::storage_type<14>:: type {aka double}' in assignment
Wäre es leichter, den Vektor mit einer 2-D-Matrix mit Dimensionen Teil und TTau zu ersetzen? Ich möchte diese letzte Option vermeiden.
Sorry, wenn dies beantwortet wurde, aber ich habe nichts in der Nähe dieses für RCPP finden
Da Sie bereits 'Part * Ttau' Platz zuweisen, verwenden Sie eine" Matrix "und in jeder 'Ttau' Iteration füllen Sie die entsprechende Spalte wie' für (int i = 0; ich
Das wäre nett, aber leider ist es nicht mein Code und ich muss auf Rcpp schreiben, und der Code, den ich habe, ist in diesem Format –