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

425 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2019 年 4 月 18 日
編集済み: dzid_ 2020 年 11 月 25 日
How can I get the path of the script or function being executed or model being run from inside the file itself?

採用された回答

MathWorks Support Team
MathWorks Support Team 2019 年 7 月 26 日
編集済み: MathWorks Support Team 2019 年 7 月 26 日
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.
  1 件のコメント
dzid_
dzid_ 2020 年 11 月 25 日
編集済み: dzid_ 2020 年 11 月 25 日
which(bdroot)
Doesn't work if model is not in the path.
Instead, use:
get_param(bdroot, 'FileName');

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProgrammatic Model Editing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by