假如我有一个尺寸为1024x1024x1x1x100的5D阵列.如何制作1024x1024x100的新阵列?
如果您知道要提前保留哪些尺寸,则以下情况有效:
arr = arr[:, :, 1, 1, :]
Run Code Online (Sandbox Code Playgroud)
但我不知道哪个尺寸提前是什么尺寸,我想只保留给定布尔掩模的尺寸; 像这样的东西......
arr2 = arr[(size(arr) .> 1)]
Run Code Online (Sandbox Code Playgroud)
该squeeze功能专门用于删除长度为1的尺寸.从手册:
Base.squeeze - 功能.
squeeze(A, dims)从阵列A中删除dims指定的尺寸.dims的元素必须是唯一的并且在范围内
1:ndims(A).size(A,i)必须为所有等于1i在dims.
为了"挤压"尺寸1的所有尺寸(当它们事先未知时),我们需要找到它们并将它们变成元组.这是通过((size(arr).==1)...).结果是:
squeeze(a,(find(size(a).==1)...))
Run Code Online (Sandbox Code Playgroud)