Думаю, здесь есть некоторая путаница. Есть несколько способов взаимодействия с путем, но по большей части они не приводят к постоянным изменениям, если вы не сохраните это каким-то образом.
Простое добавление пути для существующего сеанса октавы не приведет к постоянному изменяется на обычный путь, который октава инициализирует при запуске. Поэтому, когда вы говорите:
, я использовал addpath (genpath ('C: \ Users \ Dropbox \ Octave')), но сгенерированные пути затем фиксируются и не отражают последующие изменения подпапок.
это не имеет смысла, потому что, как только вы выйдете из сеанса октавы, эти добавленные пути должны были вообще исчезнуть и не появиться в последующих сеансах октавы.
Это более вероятно что в какой-то момент вы добавили эти пути, а затем использовали команду savepath
, в результате чего ваши пользовательские пути были добавлены в ваш файл .octaverc
.
Если это так, тогда да, вы можете ожидайте, что октава не будет "обновлять" то, что было написано в вашем .octaver c файле, если вы не вызовете savepath
снова с обновленным определением пути.
Если вам нужна команда addpath(genpath('C:\Users\Dropbox\Octave'))
, которую вы упомянули вызывается каждый раз при запуске октавы, чтобы загружалась текущая / обновленная структура каталогов, тогда да, лучший способ сделать это - добавить эту команду в ваш файл .octaverc
. Убедитесь, что вы удалили из файла .octaver c строки, относящиеся к предыдущим изменениям, внесенным savepath
. Обратите внимание, что может быть несколько уровней файлов октавера c, которые вам нужно проверить (см. соответствующую страницу в руководстве )
В качестве альтернативы вы можете просто убедиться, что эта строка отображается в каждом скрипте, который вы хотите вызвать и который намеревается использовать эти файлы.
Хотя вы можете считать этот последний подход утомительным, программно он является наиболее рекомендуемым, поскольку он делает зависимости в вашем коде ясными. Это особенно важно, если вы когда-нибудь планируете поделиться своим кодом (и вдвойне, если вы хотите, чтобы он был совместим с Matlab).
PS. Все вышеизложенное в основном относится и к Matlab, за исключением того, что a) matlab savepath
сохраняет информацию о пути в файле с именем pathdef.m
, а не непосредственно в ваших файлах запуска, и b) Matlab использует startup.m
вместо .octaverc
как файлы запуска. Кроме того, если вы не заботитесь о том, чтобы делать это программно, matlab предоставляет pathtool
, который является графическим интерфейсом для добавления / сохранения каталогов в путь к matlab.