在Julia中使用数组作为索引

时间:2019-04-29 15:33:40

标签: julia

因此,我尝试在Julia中创建多维数组,但不确定将其存储在矢量中是否更聪明/更轻松。假设我有一个具有N个因子的(M x M x M x .... x M)矩阵,因此共有(M ^ N)个条目。现在,我运行一个单独的程序,该程序可以为我提供

ind = [1, 2, 4, 4, 5, ....., 2]

,我要做的就是在此给定索引处更新矩阵A(或向量)。

例如,我想做这样的事情:

index = [2,1,2]
A = reshape(collect(1:8),(2,2,2))
A[index] = 4

但是我真正要做的是

A[2,1,2] = 4

A[index[1],index[2],index[3]] = 4

但是,此解决方案是不可行的,因为尺寸的数量各不相同,并且在我的应用程序中非常大。我正在使用Julia v0.6.4,发现有一个名为sub2ind的函数(在较新版本中已由类似的函数替换)。但是,此函数仅采用单个数字,以逗号分隔,既不是数组也不是元组(根据文档:)

sub2ind(dims, i, j, k...) -> index

如何正确/有效地解决此问题?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:6)

您可以splat index向量:

A[index...] = 4