想对数组进行双线性插值,如下:
> old=array(1:18,c(2,3,3))
> old
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
, , 3
[,1] [,2] [,3]
[1,] 13 15 17
[2,] 14 16 18
> apply(old,3,function(old, newx=4, newy=4)
+ interp.surface.grid(list(x=seq(nrow(old)),y=seq(ncol(old)),z=old),
+ list(x=seq(1,nrow(old),length=newx),
+ y=seq(1,ncol(old),length=newy)))$z)
[,1] [,2] [,3]
[1,] 1.000000 7.000000 13.00000
[2,] 1.333333 7.333333 13.33333
[3,] 1.666667 7.666667 13.66667
[4,] 2.000000 8.000000 14.00000
[5,] 2.333333 8.333333 14.33333
[6,] 2.666667 8.666667 14.66667
[7,] 3.000000 9.000000 15.00000
[8,] 3.333333 9.333333 15.33333
[9,] 3.666667 9.666667 15.66667
[10,] 4.000000 10.000000 16.00000
[11,] 4.333333 10.333333 16.33333
[12,] 4.666667 10.666667 16.66667
[13,] 5.000000 11.000000 17.00000
[14,] 5.333333 11.333333 17.33333
[15,] 5.666667 11.666667 17.66667
[16,] 6.000000 12.000000 18.00000
我想要的结果是以这样的 形式给出的:(手动打的)
, , 1
[,1] [,2] [,3] [,4]
[1,]
[2,]
[3,]
[4,]
, , 2
[,1] [,2] [,3] [,4]
[1,]
[2,]
[3,]
[4,]
, , 3
[,1] [,2] [,3] [,4]
[1,]
[2,]
[3,]
[4,]
请问该如何改代码啊??
跪求啊!!!