Estoy escribiendo una aplicación MATLAB que tiene muchas funciones repartidas en diferentes archivos. Tengo un registrador, que es una estructura con un puntero de función, y lo uso para registrar información para que el usuario vea (es decir, qué función se está ejecutando actualmente, resultados de cálculo, etc.). La razón por la que uso una estructura para mi registrador y no simplemente fprintf()
es que podría reemplazarla fácilmente con un registrador XML, registrador HTML, etc. en el futuro.La mejor alternativa a las variables globales de MATLAB
Como mi código se compone de muchas funciones que se llaman entre sí, declaro que mi estructura de registrador es global, por lo que no tengo que pasarla a todas mis funciones. Sin embargo, donde sea que mire, veo que las variables globales son el mal encarnado en MATLAB y ralentizarán considerablemente mi programa.
¿Hay alguna manera de tener variables disponibles en todos los archivos sin pasarlos necesariamente como parámetros de entrada, y sin sufrir una grave penalización de rendimiento?
Los vars globales no son "malvados". Simplemente pueden crear muchos errores si no eres un programador experimentado, como sobrecargar a otros vars, etc. Además, no creo que haya un impacto en el rendimiento para los globales en Matlab. Si usar Globals hace que su vida sea "extremadamente" más fácil, entonces úselos. Solo trata de no convertirlo en un hábito. – Jorge
@Jorge cualquier programador, no solo los inexpertos. Pero de lo contrario, sí. –
@Jorge: ¿cuál es su criterio para usar variables globales vs. pasar variables a los métodos? – dzisner