Arrays 将多维数组转换为低维数组

Arrays 将多维数组转换为低维数组,arrays,multidimensional-array,julia,Arrays,Multidimensional Array,Julia,给定一个二维数组a,至少有两种自然的方法可以将其转换为数组数组: 列的列数组 [A[:,j] for j in 1:size(A,2)] 数组的行数组 [A[i,:] for i in 1:size(A,1)] 我的问题是: 有没有更简单的方法来实现上述目标?(“更容易”可能意味着更短或不理解) 是否有一种通用方法可以轻松地将n维数组沿任意给定维度转换为n-1维数组?(上述情况是n=2的特殊情况) 注:已经提出了一个类似的问题,但重点不同: 在Julia 0.7中,您可以执行以下操作

给定一个二维数组
a
,至少有两种自然的方法可以将其转换为数组数组:

  • 列的列数组

    [A[:,j] for j in 1:size(A,2)]
    
  • 数组的行数组

    [A[i,:] for i in 1:size(A,1)]
    
我的问题是:

  • 有没有更简单的方法来实现上述目标?(“更容易”可能意味着更短或不理解)

  • 是否有一种通用方法可以轻松地将n维数组沿任意给定维度转换为n-1维数组?(上述情况是n=2的特殊情况)

  • 注:已经提出了一个类似的问题,但重点不同:


    在Julia 0.7中,您可以执行以下操作,例如
    选择DIM([x],2,轴(x,2))
    ,这在使用多维数组时非常有用(因此无需使用
    )。如果您不需要视图而是副本,请将其包装在
    copy
    中,即
    copy。(选择DIM([x],2,轴(x,2))
    。在Julia 0.6中,您有
    slicedim
    ,它也有相同的功能(复制行为)。我不知道你是否会把它缩短:)。老实说,我喜欢这里的理解…@BogumiłKamiński感谢你提到
    slicedim
    selectdim
    。当无法硬编码维度时,它们似乎更合适。如果不想复制数据,可以将数组重新解释为数组{SVector{}。但这仅在使用最后一个维度进行拆分且不需要写访问权限时有效。