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 la Matriz (para escribir o leer, por ejemplo), pero no sé de antemano cuántos índices especificar.Use un vector como índice para una matriz
Actualmente tengo un vector current_point
que repito para especificar cada índice y un vector max_points
que especifica el tamaño de la matriz. Así, si por ejemplo yo quería una matriz de 3 dimensiones de tamaño 1000-by-15-por-3, max_points = [1000 15 3]
, y current_point
itera de [1, 1, 1]
a [1000, 15, 3]
([1, 1, 1]
->[1000, 1, 1]
->[1, 2, 1]
->[1000, 2, 1]
-> ...) . Lo que me gustaría ser capaz de hacer es alimentar current_point
como un índice de la matriz de esta manera:
output_matrix(current_point) = val
Pero al parecer algo así como output_matrix([1 2 3]) = val
se acaba de establecer outputmatrix(1:3) = 30
. No puedo usar variables ficticias porque a veces la matriz necesitará 3 índices, otras veces 4, otras veces 2, etc., así que realmente necesito un vector de longitud variable. ¿Hay una manera simple de usar un vector como puntos en un índice?
Esto es esencialmente * * un duplicado de [MATLAB notación compacta matriz de indexación] (http://stackoverflow.com/questions/792683/compact-matlab-matrix-indexing-notación), aunque tal vez esta pregunta sea un poco más simple que ese caso. – gnovice
Sabía que esto debe haber sido preguntado antes, pero no lo pude encontrar con mi plugin dupe. Supongo que dejaré que la respuesta se mantenga, ya que el título de la pregunta es más directo que el otro y podría ser más fácil de buscar. – abcd
Pensé que debía haber sido preguntado en algún momento, pero por los títulos no estaba viendo nada. Buenas respuestas de ustedes dos. Pensé que habría algo simple como eso. – Paul