Пространства имен Matlab - PullRequest
0 голосов
/ 30 мая 2018

У меня следующая проблема: у меня в структуре папок есть пространства имен, например,

+Something

---Test1.m

---Test1.params

.params - это просто файл, содержащий JSON.

в Test1.m есть функциякоторый загружает JSON через fileread.Если нет структуры Namespace и все в корне, все работает нормально.Но теперь я должен быть в состоянии сделать:

fileread('Something.Test1.params');

, но он не может его найти.

Есть предложения?

С уважением

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Вы полагаетесь на MATLAB, чтобы найти файл для вас в его пути.Это плохая идея, кто-то другой может создать файл с тем же именем и поместить его ранее в путь MATLAB (например, в своем рабочем каталоге MATLAB) и нарушить ваш код.

Функция mfilename возвращает полный путь к текущему M-файлу.Используйте этот путь, чтобы найти файл данных:

p = fileparts(mfilename('fullpath'));
p = fullfile(p,'Test1.params');
data = fileread(p);
0 голосов
/ 30 мая 2018

Вы должны использовать путь к файлу.Something.Test1 действительно является полным именем функции / скрипта, но полное имя файла - "+ Something \ Test1.params".

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