2011-04-01 21 views
5

Estaba tratando de encontrar información sobre la transformación de un índice que se ha convertido de un índice bidimensional a uno único. Luego, vuelva el índice único a uno bidimensional. Ni siquiera sé cómo se llama este método.matriz de dos dimensiones para una sola dimensión y viceversa

fórmula para el índice único

int index = x + y * width; 
    MyArray[index] ; 

Así que mi pregunta es ¿cómo lo giro hacia atrás en dos dimensiones?

int x = index ??? width; 
int y = index ??? width; 

No puedo entender mi cabeza por alguna razón.

Gracias

Respuesta

7
int x = index % width; 
int y = index/width; 
+0

Gracias, amable señor, apesta cuando se trata de mod. ¿Conoces por casualidad la terminología adecuada para esta indización multi individual? Para que no suene como un muñeco la próxima vez: P – TimD

+0

No conozco ninguna terminología especial, tal vez alguien más puede entrar ;-) – BrokenGlass

+1

La indexación simple es conocida (en Matlab) como indexación lineal, la otra usted podría llamar indexación multidimensional. –

3

x = índice% anchura; y = índice/ancho;

Cuestiones relacionadas