Неопределенная функция в MATLAB

Я использовал функцию dtw в последнем выпуске MATLAB, и хотел бы настроить несколько ее частей. Для начала я набрал:

edit dtw

Я сохранил полученный код в файл с именем dtw_Copy.m и изменил имя функции на dtw_Copy также. Проходя код построчно с набором входных параметров x а также yвокруг линии 90:

[metric, varargin] = getmutexclopt({'absolute','euclidean','squared','symmkl'},'euclidean',varargin);

Я получаю сообщение об ошибке:

Неопределенная функция 'getmutexclopt' для входных аргументов типа 'cell'.

Я также получаю это сообщение об ошибке, если я не прохожу код построчно, а просто набираю dtw_Current(x,y)после повторного тестирования набора входных параметров x а также y,

После запуска:

help 'getmutexclopt'

указано, что getmutexclopt не найден. Я пробовал также:

edit 'getmutexclopt'

Но мне сказали, что currentDirectory / getmutexcloptm.m не существует.

Я старался:

which getmutexclopt

И мне сказали, что getmutexclopt не найден.

Поиск в Интернете, я нашел ресурс, который казался прямым в устранении этой ошибки. Ресурс рекомендует убедиться, что набор инструментов установлен. Я не уверен, какой набор инструментов поддерживает функцию getmutexcloptи поэтому я ввожу имя функции на сайт. В результате появляется сообщение: "Ваш поиск - getmutexclopt - не соответствует ни одному документу".

Ресурс также рекомендует проверить путь, используемый для доступа к функции. Я следовал инструкциям, чтобы сделать это, и когда я набрал:

which -all getmutexclopt

Я получил:

currentDirectory\matlab\toolbox\signal\signal\private\getmutexclopt.m  % Private to signal

Кажется, это указывает на то, что функция находится в панели инструментов сигнала, которая является частной? Есть ли возможность еще бежать dtw_Current(x,y) и / или запускать его содержимое построчно?

1 ответ

Решение

Да, это проблема, потому что функция getmutexclopt это частная функция. Вам нужно будет сделать копию этой функции, если вы хотите безопасно вызвать ее из своей копии dtw, Похоже, что основная функция (тип edit private/getmutexclopt.m в окне командной строки), так что вы можете добавить его в качестве подфункции dtw_Copy/dtw_Current,

Смотрите также этот вопрос - добавление частных функций в путь поиска не допускается.

Другие вопросы по тегам