Tengo una matriz de datos 3D en matlab, pero quiero extraer una porción de datos arbitrariamente rotada de esa matriz y almacenarla como una matriz 2D, que puedo acceso. Similar a cómo la función slice() muestra los datos recortados en cualquier ángulo, excepto que también me gustaría poder ver y modificar los datos como si fuera una matriz.Extracto del plano de datos arbitrariamente rotado de la matriz 3D como matriz 2D
I tienen las coordenadas del punto de pivote del avión, así como los ángulos de rotación (en x, y y z eje), también he calculado la ecuación del plano en la forma:
Ax + By + Cz = D
y puede extraer una matriz 3D que contiene solo los datos que caen en ese plano, pero no sé cómo convertir eso en una matriz 2D simple.
Otra forma de hacerlo sería girar de algún modo la matriz fuente en la dirección opuesta al ángulo del plano, para alinear el plano de datos con el eje XY, y simplemente extraer esa parte de la matriz , pero no sé si es posible rotar una matriz así.
Espero que esto no haya sido respondido en otro lugar, he estado buscando en Google todo el día, pero ninguno de los problemas parece coincidir exactamente con el mío.
Gracias
¿Necesita solo los datos que caen *** exactamente *** en el avión (que en general será una cantidad muy pequeña de datos) o no quiere interpolar los datos? – yohai
Quiero devolver las celdas más cercanas en lugar de la interpolación, aunque la interpolación se considerará más adelante –
Para aclarar, tiene una matriz con 3 indeces 'A [i, j, k] = a_ijk' y desea crear una matriz de 2 indeces 'B [u, v] = b_uv' donde' u', 'v' son coordenadas en un plano/porción del mundo' i', 'j',' k'? (y todos los indeces son enteros) Además, ¿hay alguna convención en la que 'ijk' corresponde a' u = 1' y 'v = 1'? – ja72