Julia 从展平数组获取二维索引

Julia 从展平数组获取二维索引,julia,Julia,给定阵列: arr=[12;34;56] 3×2 Array{Int64,2}: 1 2 3 4 5 6 它被展平flat\u arr=collect(迭代器.展平(arr)) 我有时需要在两种索引格式之间切换。例如,如果我得到了flat_arr的排序索引,我可能希望使用这些排序索引迭代arr。在Python中,这通常是通过。朱莉娅是怎么做到的?我是否只需要编写自己的函数?vec()创建阵列的一维视图。因此,您可以将两个指针都指向内存中的数组,并在任何时间使用所需的任何一个指针(它

给定阵列:

arr=[12;34;56]

3×2 Array{Int64,2}:
 1  2
 3  4
 5  6
它被展平
flat\u arr=collect(迭代器.展平(arr))

我有时需要在两种索引格式之间切换。例如,如果我得到了
flat_arr
的排序索引,我可能希望使用这些排序索引迭代
arr
。在Python中,这通常是通过。朱莉娅是怎么做到的?我是否只需要编写自己的函数?

vec()
创建阵列的一维视图。因此,您可以将两个指针都指向内存中的数组,并在任何时间使用所需的任何一个指针(它们指向同一数组):

请注意,在Julia中,数组按列主顺序存储,因此第四个值是第二列中的第一个值。

vec()
创建数组的一维视图。因此,您可以将两个指针都指向内存中的数组,并在任何时间使用所需的任何一个指针(它们指向同一数组):


请注意,在Julia中,数组是按列大顺序存储的,因此第四个值是第二列中的第一个值

这可以使用
cartesianindice
实现

c_i = CartesianIndices(arr)
flat_arr[2] == arr[c_i[2]]) == 3

这可以使用
CartesianIndices
实现

c_i = CartesianIndices(arr)
flat_arr[2] == arr[c_i[2]]) == 3

请注意,
展平
并非真正用于将数组转换为向量。“展平”是指将向量的向量转换为“普通”(非嵌套)向量。请注意,
flatte
并非真正用于将数组转换为向量。“展平”是指将向量的向量转换为“普通”(非嵌套)向量。
c_i = CartesianIndices(arr)
flat_arr[2] == arr[c_i[2]]) == 3