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.
Switching work-dir to location of *.m-file
7 visualizaciones (últimos 30 días)
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.
Más respuestas (1)
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.