我试图用emd2d(来自emdist库,版本0.3-1)对两个栅格之间的(dis)相似性进行定量估计。 以下代码适用于小矩阵(~35x35),但我的栅格更大(~5000x3000)并且我收到内存错误:
emdr中的错误(A,B,dist = dist,...):
无法在emdist中存储(-1608.8 MB)
以下是说明问题的示例代码:
#test case:
library(emdist)
Rows = 40
Cols = 40
Mat1 = matrix(
seq(1,Rows*Cols),
nrow = Rows,
ncol = Cols)
m0 <- matrix(0, Rows, Cols)
Mat_Rand = apply(m0, c(1,2), function(x) rnorm(1)) #sample(c(0,1),1))
Mat2 = Mat1 * Mat_Rand
emd2d(Mat1,Mat2,dist="euclidean")
我在win7 64bit上运行R R版本3.2.5。
由于
Ilik
答案 0 :(得分:0)
要绕过内存限制,您可以采用矩阵样本,例如:随机选择每行40个中的30个和每个40个中的30个以形成新矩阵,从而将对从100多万减少到不到50万。
label