To change Current Folder to the folder of .m File

257 ビュー (過去 30 日間)
Afz
Afz 2013 年 4 月 16 日
コメント済み: Junho Kweon 2023 年 7 月 12 日
How can I change the current folder to folder of .m file in my code.
Possibly with cd command
Or any command I can indicate that my excel file is in same location as .m file.
e.g. code.m path folder\My excel file.xls

回答 (4 件)

Image Analyst
Image Analyst 2013 年 4 月 17 日
編集済み: Image Analyst 2013 年 4 月 17 日
Here's some code I got from Brett Shoelson of the Mathworks:
% Change the current folder to the folder of this m-file.
if(~isdeployed)
cd(fileparts(which(mfilename)));
end
Edit: Note that the isdeployed is important if you will be compiling and deploying your application. This let's it operate both for you, as the developer, and for your deployed application where it will skip the cd because doing cd like that in a deployed app can wreak havoc. If you won't be doing compiling, then you can do just the cd without the if.
  3 件のコメント
Yannis Axaopoulos
Yannis Axaopoulos 2022 年 11 月 26 日
編集済み: Yannis Axaopoulos 2022 年 11 月 27 日
This command that ran fine in my MATLAB R2015b, is not actually working in the newest R2022a!
EDIT:
Actually find the solution in an other answer
% Change the current folder to the folder of this m-file.
if(~isdeployed)
cd(fileparts(matlab.desktop.editor.getActiveFilename));
end
Junho Kweon
Junho Kweon 2023 年 7 月 12 日
I do not think this command properly work for when I use 'Run Section'..

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


Diaa
Diaa 2021 年 5 月 15 日
For live scripts, @Qi Wang suggested using this:
fileparts(matlab.desktop.editor.getActiveFilename)
to get the full path of the active live script file.
  1 件のコメント
Javier Ros
Javier Ros 2022 年 3 月 4 日
This works, but the problem is that most people expects code in .m file to work in .mlx and viceversa.
I think that this issue should be adressed by MATLAB's guys.
Best regards,
Javier

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


Florian
Florian 2018 年 7 月 13 日
mfile_name = mfilename('fullpath');
[pathstr,name,ext] = fileparts(mfile_name);
cd(pathstr);

Matt Kindig
Matt Kindig 2013 年 4 月 17 日
cd(which(fileparts('/path/to/your/file.m')))

カテゴリ

Help Center および File ExchangeSpreadsheets についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by