Ejercicio 17 de TP
de LEVI HADID LUCAS ALBERTO - Una pregunta. En el ejercicio 17, que hay que hacer la compresión en rango, estoy multiplicando la DFT de la chirp por la DFT conjugada de cada una de las filas de la matriz. El tema es que quice hacerlo con el operador " .* ", pero para usarlo deberían tener las mismas dimensiones, cosa que no pasa porque uno es un vector y otro una matriz. Entonces lo estoy haciendo iterando por medio de un for. Pero lo mande a correr hace mas de 15 minutos y todavia no terminó, y ni se cuando terminará...
Mi pregunta es si no hay alguna forma de hacer esto sin iteracion asi se hace mas rapido el programa
gracias
Re: Ejercicio 17 de TP
de PELLE PATRICIA ALEJANDRA - Si tenés memoria suficiente, podés hacer una matriz con la DFT de la chirp, que en cada fila tenga la misma DFT. Eso no necesitás hacerlo con un for, una multiplicación por una matriz diagonal es suficiente. Pero esta solución lleva memoria. Tenés que generar 2 matrices más de la misma dimensión de la matriz de datos. Para probar pueden usar algunas columnas menos. Saludos,
Patricia
PD: tengan paciencia, porque en esta parte se puede salvar el tiempo, en cambio en la de azimut no.
Patricia
PD: tengan paciencia, porque en esta parte se puede salvar el tiempo, en cambio en la de azimut no.
Re: Ejercicio 17 de TP
de Azcueta Mario - Te recomiendo que proceses el subset de los datos que dimos en vez de la imagen entera para ahorrarte tiempo.
Ahora respondiendo a tu pregunta, si usas una version de Matlab relativamente nueva (creo que a partir de la 2010) ya viene con un "precompilador" por default (JIT accelerator) que se ejecuta cada vez que corres un script y te ahorra lo que tardaban versiones mas viejas en correr los ciclos for. Si usas un Matlab viejo u Octave no traen esto incorporado.
Otra que podes probar si dispones de RAM es armarte una matriz con la chirp replicada varias veces (mira la funcion repmat) y haces la DFT matricialmente de cada una y la multiplicacion tambien, con esto deberías ahorrarte algo de tiempo.
Ahora respondiendo a tu pregunta, si usas una version de Matlab relativamente nueva (creo que a partir de la 2010) ya viene con un "precompilador" por default (JIT accelerator) que se ejecuta cada vez que corres un script y te ahorra lo que tardaban versiones mas viejas en correr los ciclos for. Si usas un Matlab viejo u Octave no traen esto incorporado.
Otra que podes probar si dispones de RAM es armarte una matriz con la chirp replicada varias veces (mira la funcion repmat) y haces la DFT matricialmente de cada una y la multiplicacion tambien, con esto deberías ahorrarte algo de tiempo.