Папка классов не принята в путь Matlab - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь использовать Gramm Toolbox для выполнения некоторых продвинутых построений данных, однако я, похоже, не могу даже создать простой график "Привет, мир".

А именно, когда я запускаю любую из ячеек кода в файле examples.m, я сталкиваюсь с этой ошибкой, связанной с путем:

Undefined function or variable 'parse_aes'.
Error in gramm (line 177)
            obj.aes=parse_aes(varargin{:});

Это несмотря на добавление папки Gramm (c: \ Program Files \ MATLAB \ R2016a \ toolbox \ gramm \; которая является родительской папкой к папке @gramm) рекурсивно, к пути Matlab, т. Е. Со всеми его подкаталогами. Это, согласно readme, является единственным обязательным этапом установки.

Я предполагаю, что проблема связана с папкой / определением класса, но, к сожалению, я ничего не знаю об объектно-ориентированном программировании.

Я использую Matlab 2016a с установленной статистикой и наборами кривых, в соответствии с требованиями инструментария.

Может кто-нибудь предложить что-то еще, что я могу попробовать? (кажется, нет прямой / быстрой поддержки от самого автора кода)

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Даже после исправления пути в соответствии с ответом Суэвера (нужно было добавить нерекурсивно), я все еще получал ту же ошибку.

Подсказкой было сообщение, которое Matlab отображал после его перезапуска:

Warning: Found directory Private in directory c:\Program Files\MATLAB\R2016a\toolbox\gramm\@gramm. Private
directory names must be spelled 'private'. 

Непонятно, почему подпапка была названа заглавной буквой P, так как загруженный ZIP имеет ее в нижнем регистре. Во всяком случае, после переименования этой подпапки в «private» все примеры работали как положено.

0 голосов
/ 10 января 2019

Вы не хотите рекурсивно добавлять все каталоги в путь, просто добавьте каталог верхнего уровня, содержащий папку класса @gramm.

Если вы добавите подкаталоги, тогда в пути будет существовать файл определения класса, @gramm/gramm.m, который будет использоваться непосредственно при вызове gramm и всех других методов, определенных в * Папка 1008 * (и @gramm/private) не будут правильно связаны с этим экземпляром класса.

Если вы перечитываете инструкции по установке, в нем не упоминается добавление каталогов рекурсивно , просто добавление каталога верхнего уровня:

... добавить папку, содержащую папку класса @gramm, в путь Matlab (с использованием графического интерфейса пользователя или addpath())

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