Matlab: как найти функции на пути, которые используют данную функцию

Иногда бывает, что мне нужно изменить поведение функции. Есть ли простой способ найти функции (на пути Matlab), которые используют эту функцию?


person Alain    schedule 13.04.2010    source источник


Ответы (4)


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

В редакторе: Правка->Найти файлы

person Jonas    schedule 13.04.2010
comment
+1 почему-то я никогда не знал, что это существует, спасибо, Джонас! Обычно я использую внешний инструмент Agent Ransack для поиска текста в файлах.. - person Amro; 13.04.2010

Начните с help deprpt.

РЕДАКТИРОВАТЬ: когда я запускаю отчет о зависимостях, в верхней части окна отчета есть 3 флажка. Один из них, по умолчанию снятый, называется «Показать родительские функции (только текущая папка)». Это, вероятно, начало того, что вы хотите, но это работает только в одной папке.

Если вы хотите большего, я предлагаю вам попробовать edit deprpt.m.

person High Performance Mark    schedule 13.04.2010
comment
deprpt делает противоположное тому, что я хочу: он находит файлы, от которых зависит данный файл - или, может быть, я что-то пропустил? - person Alain; 13.04.2010
comment
@Doresoom: Мое решение работает для всего пути Matlab, поэтому я не думаю, что оно намного хуже, чем неполное решение. Тем не менее, +1, чтобы отменить -1 - person Jonas; 13.04.2010
comment
@Jonas: Я полностью согласен с тем, что ваше решение эффективно - получил мой голос. Извините, здесь показаны только личные предпочтения. - person Doresoom; 13.04.2010

Я бы использовал такой инструмент, как grep. Несколько лет назад я разместил на файлообменнике инструмент под названием mgrep. Он может искать любую заданную строку в целых каталогах m-файлов и рекурсивно искать в подкаталогах. Поэтому, чтобы найти в моих каталогах функции, вызывающие fminsearch, я просто выполнял это в командной строке.

mgrep('fminsearch','.','show','off') Поиск каталога(ов)...

/Users/woodchips/Desktop/My_FEX/cylinderfit.m /Users/woodchips/Desktop/My_FEX/fminspleas.m /Users/woodchips/Desktop/My_FEX/fminspleas2.m /Users/woodchips/Desktop/My_FEX/fminspleas3.m /Users /woodchips/Desktop/My_FEX/fminspleasnnls.m /Users/woodchips/Desktop/My_FEX/BoundedFSOLVE/fsolvebnd.m /Users/woodchips/Desktop/My_FEX/FMINSEARCHBND/fminsearchbnd.m ...

person Community    schedule 13.04.2010

вы имеете в виду поиск зависимостей? это будут инструменты -> показать отчет о зависимостях

person Pyjong    schedule 13.04.2010
comment
инструменты -> показать отчет о зависимостях делает противоположное тому, что я хочу: он находит файлы, от которых зависит данный файл - person Alain; 13.04.2010