Switching work-dir to location of *.m-file

7 visualizaciones (últimos 30 días)
Fabian
Fabian el 11 de Jun. de 2012
Hi there, I am fairly new to matlab, so excuse me if my question is trivial....
I have the following issue. I want to use a skript i use for several projects and which should used by several collegues via Subversion.
The script (Let call it Script A) is supposed to compile a few files and (If they are more recent) copy them in a sub-folder folder.
My problem is the following. The folder might be in different places in my collegues PCs, therefore i have to use relative paths to the compiler and the files. If i run the script in different places this works just fine. But if i want to get the newest version for my current project another script (Script B) is calling script A to check whether there is a new version, and ,if so, copy the compiled file to the project . As script B is running in the work-dir of the current project rather than in the dir of script A the relative paths don't fit anymore. The folder of Script A is in the search path of matlab and therefore can be called from the project. My first Idea is to switch to the dir. of script A execute it and then switch back to the work-dir of the project. The Question: Is there a command to change the current work-dir to the one of script A? Basically a command to get the actual folder of the *.m-file?
Thanks for all tips.

Respuesta aceptada

Fabian
Fabian el 12 de Jun. de 2012
Thanks for the hint, pinted me in the right direction.. The solution is: "fileparts(which('func'))" gives you the path of func. "fileparts(which(mfilename))" gives you the current path of an m-file.

Más respuestas (1)

Walter Roberson
Walter Roberson el 11 de Jun. de 2012
If it is a script and not a function, then you can use run() with a path; it changes directory in order to execute the script.
You can use which() to find out the path to a script or function.
  2 comentarios
Avishek Dutta
Avishek Dutta el 12 de Jun. de 2012
Hi all,
In this context I would like to ask if there is way to provide relative file names like "../test/data.txt" in dlmread.
Thanks
Walter Roberson
Walter Roberson el 12 de Jun. de 2012
I believe so. Easy to test.

Iniciar sesión para comentar.

Categorías

Más información sobre File Operations en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by