font - two line title matlab
Encuentra la ubicaciĆ³n de la m-file actual en MATLAB (4)
Estoy trabajando en mi código MATLAB en varias ubicaciones diferentes, y realmente sería útil si pudiera hacer que el código tuviera en cuenta su ubicación en la computadora. Creo que hay una función que me proporciona exactamente esta información, pero no recuerdo cómo se llama ni la encuentro en Google.
La idea es que tengo una función myFunc
que necesita un archivo en su propio directorio, que puede estar en diferentes ubicaciones en diferentes computadoras. Entonces en myFunc
quiero hacer algo como esto:
dir = theFunctionImLookingFor;
system(fullfile(dir, ''someApp.exe''));
(También podría ser que la función que estoy buscando no devuelva el directorio, sino el directorio + m-file name, pero eso me hace poca diferencia).
Cuando trabajo con clases, a menudo me gusta mantener los datos asociados en el directorio de la clase. Utilizo para obtener la ruta y luego las fileparts para cortarlo.
[folder, name, ext] = fileparts(which(''object''));
Donde ''objeto'' puede ser una función o nombre de clase. La ventaja de este método para mí es que puedes llamarlo desde fuera del mfile en cuestión. Esto es necesario si necesita obtener la ruta a una clase derivada de la clase base, por ejemplo.
Debería poder usar mfilename y cd para esto.
mfilename devolverá el nombre del archivo m actualmente en ejecución. CD por sí mismo imprimirá el directorio actual
Otro método, a través de Walter Roberson en el sitio de respuestas de MATLAB , utilizando la función dbstack
:
S = dbstack(''-completenames'');
S(1).file
mfilename o mejor mfilename(''fullpath'')