Jump to content

    
Krys

как в скрипте Matlab узнать папку, в которой этот самый скрипт находится?

Recommended Posts

Здравствуйте. Подскажите, пожалуйста, как в скрипте Matlab узнать папку, в которой этот самый скрипт находится? Внутри скрипта используются относительные пути в предположении, что скрипт находится в текущей папке, т.к. он когда-то был главным скриптом проекта.

Но потребовалось этот скрипт вызывать из другого скрипта другого проекта. И теперь текущая папка указывает на положение вызывающего скрипта, соответственно в вызываемом не срабатывают пути.

Нужно как-то сделать так, чтобы независимо от текущей папки, пути внутри скрипта были указаны относительно положения файла этого самого скрипта.

Share this post


Link to post
Share on other sites

Здравствуйте. Пришла пора повторить вопрос, только для файлов *.mlx (live script, live editor). Версия матлаба 2016b.

Не могу найти решение. Гуглил, вот очень близкая проблема:

 

I'm working on my MATLAB code in a number of different locations, and it would be really helpful if I could make the code aware of its location on the computer. Till now I worked with .m-files. For .m-files I found the following solutions:


%example 1    
cd(fileparts(mfilename('fullpath')))

or


%example 2
tmp = matlab.desktop.editor.getActive;
cd(fileparts(tmp.Filename));

or


%example 3
S = dbstack('-completenames');
S(1).file

or


%example 4
which(mfilename)

...

Outputs of the examples above executed in a *.mlx-file:

%example1: mfilename returns the path to the 'MatlabEvaluationHelper' in the 'AppData\Local\Temp'-folder

%example2: output is an empty array

%example3: same output as example1

%example4: same output as example1, because mfilename returns "MatlabEvaluationHelper"

 

 

Share this post


Link to post
Share on other sites
14.01.2022 в 14:25, Krys сказал:

Версия матлаба 2016b.

Не могу найти решение.

Сам себе отвечу: перешёл на версию 2021b update 1, там это заработало

matlab.desktop.editor.getActive

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.