Я пишу функцию MATLAB для считывания данных в n-мерный массив (размер переменной размерности). Мне нужно иметь доступ к определенной точке в матрице (например, писать или читать ее), но я заранее не знаю, сколько индексов указать.
В настоящее время у меня есть вектор current_point
, который я повторяю, чтобы указать каждый индекс, и вектор max_points
, который определяет размер массива. Итак, если, например, мне нужен трехмерный массив размером от 1000 до 15 на 3, max_points = [1000 15 3]
и current_point
итерации от [1, 1, 1]
до [1000, 15, 3]
([1, 1, 1]
→ [1000, 1, 1]
→ [1, 2, 1]
→ [1000, 2, 1]
→ ...). То, что я хотел бы сделать, это feed current_point
как индекс для матрицы:
output_matrix(current_point) = val
Но, похоже, что-то вроде output_matrix([1 2 3]) = val
просто установит outputmatrix(1:3) = 30
. Я не могу просто использовать фиктивные переменные, потому что иногда матрице потребуется 3 индекса, другие 4, другие 2 и т.д., Поэтому вектор переменной длины действительно то, что мне нужно здесь. Существует ли простой способ использования вектора в качестве точек в индексе?