【发布时间】:2021-06-12 13:40:22
【问题描述】:
我正在尝试将 R“粒子”包中的示例应用于海洋速度数据(动能)。 示例数据如下:
ke1<-c(0.394610137,0.203202814,0.12364389,0.069784589,0.048573241,0.043057494,0.03826768,0.034176417,0.032129359,0.03122394
)
ke2<-c(0.094138406,0.169889584,0.086677499,0.070593894,0.049883354,0.042339094,0.038856283,0.037967827,0.036562074,0.037240546
)
ke3<-c(0.054365572,0.096576959,0.10304369,0.061354585,0.053624138,0.042112421,0.040727202,0.039870735,0.042947762,0.043291345
)
ke4<-c(0.030527802,0.075901449,0.08003746,0.068991989,0.048506431,0.044592839,0.04071483,0.042985249,0.042403288,0.044974718
)
ke5<-c(0.021374704,0.047852065,0.070487022,0.059393879,0.051129311,0.042866949,0.040003292,0.040003441,0.044107087,0.04578279
)
ke<-cbind(ke1,ke2,ke3,ke4,ke5)
library(particles)
library(tidygraph)
kee<-as.numeric(unlist(ke))
sim <- create_empty(1000) %>%
simulate(alpha_decay = 0, setup = aquarium_genesis(vel_max = 1)) %>%
wield(reset_force, xvel = 0, yvel = 0) %>%
wield(field_force, angle = kee, vel = kee , xlim = c(-5, 5), ylim = c(-5, 5)) %>%
evolve(1000, record)
我已将粒子包中的脚本应用于示例数据,但出现以下错误。
Error in matrix(vel, ncol = ncol(angle), nrow = nrow(angle)) :
non-numeric matrix extent
感谢评论,我成功解决了非数字矩阵的问题。
接下来增加速度数据量(row = 233, col = 154),出现如下错误。
Error: cannot allocate vector of size 152.6 Mb
我尝试使用 gc() 检查我使用的内存量。
gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 2765657 84.5 4718054 144.0 4718054 144.0
Vcells 311435640 2376.1 480298947 3664.4 439560179 3353.6
memory.limit 是 4000(上限)。 可以说是电脑内存造成的吗?
【问题讨论】:
-
我建议您提出一个新问题,因为您的编辑内容有所不同。但是,是的,我认为可以公平地说你没有足够的内存。要么删除未使用的对象
rm(...),获得更多内存的机器,或者看看你是否有办法以更高的内存效率来处理它