Rの練習
2次元ランダムウォーク どう書く?org
1次元版が1行で書けてびっくりですよ.
wにf.xをapplyしようとしてこけたのでリストに変換後lapplyしてunlistしてベクトル化.
もっといいデータ構造を使うと3次元表示のときに点と点の間に線を引けるのではないかと予想.
t <- 1000 #1次元 plot(cumsum(c(0,2*floor(2*runif(t-1))-1)),type="l") #2次元 x <- 0 y <- 0 f.x <- function(t){switch(t,1,-1,0,0)} f.y <- function(t){switch(t,0,0,1,-1)} w <- floor(4*runif(t)+1) move.x <- unlist(lapply(as.list(w),f.x)) move.y <- unlist(lapply(as.list(w),f.y)) x <- x + cumsum(move.x) y <- y + cumsum(move.y) plot(x,y,type="b") #2次元版を3次元に表示 library(scatterplot3d) z <- 1:t scatterplot3d(x,y,z,pch=20)