Rcpp
に距離行列を格納する方法がわかりません。RcppにR - store distance行列を格納
私たちは、私がrcpp
でそうするかどうかはわからないですので(私はsum
を二乗していない私はn*n
個人の距離行列で、以下の機能を保存することを想像してみましょう。これで
distxy = function(x,y) sum (x - y)
たとえば私は、この
ような行列をループ機能を希望R
で3人
[,1] [,2] [,3] [,4]
[1,] 24 24 22 20
[2,] 21 24 30 20
[3,] 44 34 41 13
を比較対毎のしたいです
[,1] [,2] [,3]
[1,] 0 -5 -42
[2,] 5 0 -37
[3,] 42 37 0
私は私がこれまでに達成どのようなトラブル
rcpp
で同じことをやって過ごしてい
が
// [[Rcpp::export]]
NumericVector FunCpp(NumericMatrix x) {
int nrow = x.nrow();
NumericMatrix out(nrow);
for (int i = 0; i < nrow; i++) {
for (int j = 0; j < nrow; j++) {
out[i,j] = sum(x(i,_) - x(j,_)) ;
}
}
return out;
}
である(ここでは重要でないで、私は結果を二乗することができますが、この)
mat = matrix(0, nrow(d), nrow(d))
len = nrow(d)
mat = matrix(0, len, len)
for(j in 1:len){
for(i in 1:len){
mat[j,i] = distxy(d[j,], d[i,])
}
}
と取得
しかし、距離行列が正しくありません。何か案が ?
d = rbind(c(24, 24, 22, 20),
c(21, 24, 30, 20),
c(44, 34, 41, 13))
C++の個別指導サービスとしてのStackOverflowを誤用しないでください。これは、短期間で_elementary_エラーを示す2番目の質問です。より野心的なRcppの冒険に着手する前に、あなたのC++を磨く必要があるかもしれないと思います。 –