Tengo una matriz 2D, llámala 'A'. Tengo otras dos matrices en 2D, llámalas 'ix' e 'iy'. Me gustaría crear una matriz de salida cuyos elementos son los elementos de A en los pares de índices proporcionados por x_idx y y_idx. Puedo hacer esto con un ciclo de la siguiente manera:dos matrices que definen coordenadas 2d, como índices de matriz, en matlab/octave
for i=1:nx
for j=1:ny
output(i,j) = A(ix(i,j),iy(i,j));
end
end
¿Cómo puedo hacer esto sin el bucle? Si hago output = A (ix, iy), obtengo el valor de A en todo el rango de (ix) X (iy).
Gracias, Jason
Ten cuidado - está utilizando la matriz ix para proporcionar la coordenada yy la matriz iy para proporcionar la x. En MATLAB, el primer índice es la coordenada y. Lo mismo aplica para su matriz de salida: está utilizando los límites incorrectos para los bucles for. –
Buen punto, pero depende un poco de cómo usa los datos. Si no le importa que la visualización de su matriz muestre x arriba-abajo e y, de izquierda a derecha, no hay un problema fundamental con respecto a esa convención de Matlab. Pero seguro es importante saber, estoy de acuerdo. –