我有一个与没有RGB透明度信息的.png图像矩阵相对应的列表。矩阵的维数为128 128 3
。所以我有一个128 x 128
矩阵编码每个像素的红色色调;编码绿色的128 x 128
矩阵;布鲁斯的128 x 128
矩阵。图片中没有透明度,但要写这个.png,我想我需要添加一个128x128
的{{1}}矩阵并将其标记到我的列表中,以获得{{1矩阵。
如何将这个矩阵附加到我的列表中?
我有一个名为1
的列表,其中包含这些维度(128 x 128 x 4
),我尝试了多种单括号和双括号的方式来包含compressed
之类的内容但没有成功。
这个想法最终将其保存为:
128 128 3
没有消除颜色。
答案 0 :(得分:3)
这是一个示例,取决于您当前是否有数组或矩阵列表。查看?writePNG
,您似乎需要n x n x 4
数组作为最终产品,因此我包含了从列表到数组的转换。
提供了许多其他解决方案,例如here
n <- 4
# generate matrices
r <- matrix(runif(n^2), n, n)
g <- matrix(runif(n^2), n, n)
b <- matrix(runif(n^2), n, n)
a <- matrix(1, n, n)
# list or array format for the data you have
li <- list(r, g, b)
ar <- array(c(r, g, b), dim = c(n, n, 3))
# appending the fourth matrix
li[[4]] <- a
ar1 <- array(c(ar, a), dim = c(n, n, 4))
# alternatively for array
library(abind)
ar2 <- abind(ar, a, along = 3)
# if you have a list and need an array
sapply(li, identity, simplify = "array")