How to get the file path inside a script, function, or model?

Illustration
ramesh - 2021-09-30T12:49:29+00:00
Question: How to get the file path inside a script, function, or model?

How can I get the path of the script or function being executed or model being run from inside the file itself?  

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

For scripts and functions:
 
[filepath,~,~] = fileparts(mfilename('fullpath'))

or simply

filepath = fileparts(mfilename('fullpath'))
Note:
 
-This works with M file scripts and functions during normal execution.
 
-This will not produce the desired result for MLX live scripts or in "%%" sections of scripts run individually.
 
-The functions used are not supported for code generation.
 
For live scripts (or "%%" sections of scripts):
 
[filepath,~,~] = fileparts(which('your_file_name'))

or simply

filepath = fileparts(which('your_file_name'))
Note:
 
-This requires manually entering the name of the file into 'your_file_name'.
 
-The more flexible approach which works for M file scripts and functions using 'mfilename' returns incorrect results for MLX live scripts and "%%" sections of scripts run individually.
 
-The functions used are not supported for code generation.
 
For Simulink models:
 
 
[path,~,~] = fileparts(which(bdroot))

or simply

path = fileparts(which(bdroot))
Note:
 
-This can be used in Model Callbacks, Block Callbacks, Mask Initialization, and Mask Icon & Ports.
 
-Using "gcs" in place of "bdroot" will not give the desired result in some circumstances, for example Block Callbacks inside subsystems.
 
-The functions used are not supported for code generation.
 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!