Matlab и addpath - PullRequest
       4

Matlab и addpath

1 голос
/ 16 марта 2012

Я недавно работал с Matlab. Мой вопрос проистекает из моего использования в течение нескольких месяцев, и я не могу решить его. У меня есть внешний инструментарий SVM (OSU-SVM), с которым я хотел бы взаимодействовать с моим проектом. Я могу заставить всю систему работать, когда я вручную добавляю путь к панели инструментов (щелкните правой кнопкой мыши -> Добавить в путь -> Выбранные папки и подпапки). Что я хотел бы сделать, это добавить папку в сценарии. Я пробовал команду «addpath», но по какой-то причине не могу найти библиотеку относительно m-файла (сценария), из которого я запускаю команду. Ниже приведен пример кода:

% Add OSU SVM system
addpath(genpath('./osu-svm/'));

Причина, по которой я хотел бы добавить путь с использованием относительной папки к M-файлу, заключается в том, что код должен работать в другой среде, в которой не будет установлен набор инструментов. Код также будет выполняться в другой ОС, отличной от той, над которой я работаю. То есть я запускаю Windows Matlab для разработки кода, и мне нужно запустить готовую систему на компьютере с Linux. Процесс запуска моих файлов должен быть настолько безболезненным, насколько это возможно, и не должен требовать большого вмешательства со стороны пользователя. Вот почему я специально пытаюсь избежать ручного добавления пути.

На стороне заметки похожая проблема возникает, когда я хочу использовать "uigetfile", используя относительный путь. Я полагаю, что есть кое-что, чего мне не хватает, что поможет мне решить оба этих вопроса одновременно. Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 16 марта 2012

Вместо «./osu-svm/» используйте только

fullfile('.','osu-svm')

Причина, по которой он не работает в Windows, заключается в том, что вы используете разделители файлов с косой чертой. Полный файл создаст строку файла, содержащую правильный разделитель файлов для каждой ОС.

Пример genpath в документации по matlab также использует fullfile http://www.mathworks.co.uk/help/techdoc/ref/genpath.html

Кроме того, "." является своего рода ненужным, поскольку он просто означает «относительно текущего каталога» и может быть исключен из команды. Возможно, вы имели в виду один каталог вверх?

'..'

???

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...