4

Possible Duplicate:
Find location of current m-file in Matlab

I would like to write an m-file that will display the directory the function is defined in.

For instance if the function foo.m is placed in the directories c:\bar and c:\foo (full path to the file is then either c:\bar\foo.m or c:\foo\foo.m), neither of which is intially on the MATLAB path, this sequence of commands

addpath("c:\bar");
foo

would produce the result: I am located in directory c:\bar

while

addpath("c:\foo");
foo

would produce the result I am located in directory c:\foo

How can I write such a function?

Community
  • 1
  • 1
Marc
  • 5,315
  • 5
  • 30
  • 36

2 Answers2

6

Are you looking for the mfilename function? The optional fullpath input argument returns the full path to the m-file that the function is called from.

Praetorian
  • 106,671
  • 19
  • 240
  • 328
2

Praetorian is correct. You may also be interested in the fileparts function. Below is code that should do what you are requesting.

function foo
fprintf('I am located in directory %s', fileparts(mfilename('fullpath')))
Erik
  • 6,470
  • 5
  • 36
  • 37