Krys 2 12 декабря, 2014 Опубликовано 12 декабря, 2014 · Жалоба Здравствуйте. Подскажите, пожалуйста, как в скрипте Matlab узнать папку, в которой этот самый скрипт находится? Внутри скрипта используются относительные пути в предположении, что скрипт находится в текущей папке, т.к. он когда-то был главным скриптом проекта. Но потребовалось этот скрипт вызывать из другого скрипта другого проекта. И теперь текущая папка указывает на положение вызывающего скрипта, соответственно в вызываемом не срабатывают пути. Нужно как-то сделать так, чтобы независимо от текущей папки, пути внутри скрипта были указаны относительно положения файла этого самого скрипта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spbroma 0 12 декабря, 2014 Опубликовано 12 декабря, 2014 · Жалоба mfilename('fullpath') Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 15 декабря, 2014 Опубликовано 15 декабря, 2014 · Жалоба Большое спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 14 января, 2022 Опубликовано 14 января, 2022 · Жалоба Здравствуйте. Пришла пора повторить вопрос, только для файлов *.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" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 1 марта, 2022 Опубликовано 1 марта, 2022 · Жалоба 14.01.2022 в 14:25, Krys сказал: Версия матлаба 2016b. Не могу найти решение. Сам себе отвечу: перешёл на версию 2021b update 1, там это заработало matlab.desktop.editor.getActive Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться