【发布时间】:2018-02-27 14:18:53
【问题描述】:
假设我有一个大小为 1024x1024x1x1x100 的 5D 数组。如何制作一个 1024x1024x100 的新数组?
如果您提前知道要保留哪些维度,则以下方法有效:
arr = arr[:, :, 1, 1, :]
但是我不知道哪些尺寸是提前的尺寸,我只想保留给定布尔掩码的尺寸;像这样...
arr2 = arr[(size(arr) .> 1)]
【问题讨论】:
-
尝试
squeeze(a,(find(size(a).==1)...))和一般squeeze、reshape和size应该进行操作。 -
你为什么要这样做?
-
@DanGetz
squeeze非常适合这个,你能把它写成答案,我会标记它并解决吗?谢谢! -
@MichaelK.Borregaard 这是我为github.com/tlnagy/OMETIFF.jl 所做的一些重构,我正在从数据集中读取 5D 图像,它们可能需要也可能不需要所有 5 个维度。它使代码在读取图像后而不是更早地删除尺寸变得更简单。