Итак, я пытаюсь создать многомерный массив в Джулии, и я не уверен, умнее / проще хранить его в векторе или нет. Допустим, у меня есть матрица (M x M x M x .... x M) с N факторами, то есть всего (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
Как мне решить эту проблему надлежащим образом / эффективно? Любая помощь будет принята с благодарностью!