Utilice un vector como índice de una matriz
Estoy escribiendo una función MATLAB para leer datos en una matriz n-dimensional (tamaño de dimensión variable). Necesito poder acceder a un punto específico en Matrix (para escribir o leerlo, por ejemplo), pero no sé de antemano cuántos índices especificar.
Actualmente tengo uncurrent_point
vector que recorro para especificar cada índice, y unmax_points
vector que especifica el tamaño de la matriz. Entonces, si por ejemplo quisiera una matriz tridimensional de tamaño 1000 por 15 por 3,max_points = [1000 15 3]
ycurrent_point
itera desde[1, 1, 1]
a[1000, 15, 3]
([1, 1, 1]
->[1000, 1, 1]
->[1, 2, 1]
->[1000, 2, 1]
-> ...). Lo que me gustaría poder hacer es alimentarcurrent_point
como un índice de la matriz así:
output_matrix(current_point) = val
Pero aparentemente algo comooutput_matrix([1 2 3]) = val
solo estableceráoutputmatrix(1:3) = 30
. No puedo simplemente usar variables ficticias porque a veces la matriz necesitará 3 índices, otras veces 4, otras veces 2, etc., por lo que un vector de longitud variable es realmente lo que necesito aquí. ¿Hay una manera simple de usar un vector como puntos en un índice?