Utilizo funciones anónimas para la impresión de diagnóstico cuando se depura en MATLAB. Por ejemplo,¿Cómo puedo hacer una función anónima "vacía" en MATLAB?
debug_disp = @(str) disp(str);
debug_disp('Something is up.')
...
debug_disp = @(str) disp([]);
% diagnostics are now hidden
Usando disp([])
como "ENGULLEN" parece un poco sucio a mí; ¿Hay alguna opción mejor? (?) El método obvio no funciona:
debug_disp = @(str) ;
Esto podría, creo, ser útil para otras aplicaciones de lenguaje funcional, no sólo la impresión de diagnóstico.
Me gusta más este enfoque. A pesar del esfuerzo extra, creo que es de hecho la manera más limpia de hacerlo. –
En mi máquina, este enfoque es más rápido que todos menos dos versiones que probé. 1 millón de llamadas a handle() cuando handle fue 'handle = @ NOP' requerido 7.09 segundos. Mientras que 'handle = @() [];' requirió 23.2 segundos. Me imagino que esto se debe a la sobrecarga de la creación de objetos. 'handle = @() drewow ('update');' requirió 3.37 segundos. 'handle = @() disp ([]);' y 'handle = @() disp ('');' estaban vinculados a 9.71 segundos. La función más rápida fue 'handle = @() (1);' con un tiempo de 0.775 segundos. Sus llamadas, sin embargo, deben terminar con un punto y coma. – Eponymous
Oops 'handle = @() drewow ('update');' tomó 34.0 segundos para un millón de llamadas. Accidentalmente dejé un 0 al escribir 1000000. Por cierto, todavía es mucho más rápido que 'handle = @() drawow;' - que tomó 187 segundos. – Eponymous