arrays - 如何在 Julia 中连接包含数组的元组数组

标签 arrays tuples julia

假设我有一个数组 x像这样:

x = [(i*ones(4,4,3),rand(11),rand(1:10)) for i=1:5];

现在,我想从最后一个维度连接它们。我的意思是,在操作结束时,我想要 3 个数组。第一个数组的大小需要为 (4,4,3,5) [5 个 (4,4,3) 数组的串联)],第二个 (11,5) 和最后一个是 (1,5) 大小。我怎样才能在 julia 中做到这一点?

编辑
当然,我可以像下面那样做,但我想听听是否有一个聪明的方法(在内存消耗和速度性能方面):
julia> i=[ t[1] for t in x];

julia> q=[ t[2] for t in x];

julia> l=[ t[3] for t in x];

julia> (cat(4,i...),cat(2,q...),reshape(l,1,length(l))

最佳答案

另一种方式可能是:

ntuple(s->reshape(
  [x[i][s][j] for j in eachindex(first(x)[s]), i=1:length(x)],
  size(first(x)[s])..., length(x)
), length(first(x)))

这可以节省一些时间和内存(取决于 x 中的大小/形状),但问题中更长的解决方案应该没问题。顺便说一句,因为这个版本适用于 x 的不同形状和长度(与问题中的版本不同)它看起来有点神秘。

关于arrays - 如何在 Julia 中连接包含数组的元组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44817921/

相关文章:

c# - 在 C# 中返回对象的 JSON 数组

javascript - 访问数组javascript的 "column"中的数据

python - 为条件频率分布创建标记和文本的元组

julia - 如何在 Julia 中可视化信号的 FFT?

c++ - 数组是通过引用传递的,但是如果我只传递一个没有存储在内存中的数组的值会怎样?

ios - 显示来自对象的 TableView 行 - iOS Swift

python - 更改列表中元组中的值

python - 从元组列表中查找匹配项

julia - 为什么变量可以在 Julia 宏名称修改中以 # 开头?

arrays - Julia : create an arrays in for loop