如何在Julia中将嵌套数组转换为多维数组

时间:2015-10-24 08:58:00

标签: arrays julia

我想在Julia 0.4中从Array{UInt8,3}(灰度图像数据)制作Array{UInt8,2}(彩色图像数据),如下所示:

using Images
dat = data(img)
dat2 = map(x -> (v = x*2 % UInt8; [v,0,0]), dat)
img2 = colorim(dat2)

但是,上面的代码会改为Array{Array{UInt8,1},2}。如何制作“扁平”多维数组?

3 个答案:

答案 0 :(得分:4)

您也可以使用

z = zeros(UInt8, size(A))
colorim(cat(3, A, z, z))

其中A是红色通道中您想要的任何内容。

答案 1 :(得分:2)

使用数组理解:

dat2 = UInt8[k==1 ? (dat[i,j]*2)%UInt8 : zero(UInt8)
             for i=1:size(dat,1),j=1:size(dat,2),k=1:3]

答案 2 :(得分:2)

另一种方法可能是:

dat2=zeros(UInt8,(size(dat)...,3))
dat2[:,:,1]=2*dat1