Как я делаю “пустую” анонимную функцию в MATLAB?

Я использую анонимные функции для печати диагностики при отладке в MATLAB. Например,

debug_disp = @(str) disp(str);
debug_disp('Something is up.')
...
debug_disp = @(str) disp([]);
% diagnostics are now hidden

Используя disp([]) поскольку "бормотание" кажется немного грязным мне; существует ли более оптимальный вариант? Очевидный (?) метод не работает:

debug_disp = @(str) ;

Это, я думаю, могло быть полезно для других функциональных приложений языка, не только диагностической печати.

15
задан gnovice 30 December 2009 в 02:57
поделиться

4 ответа

Я думаю, что disp ([]) или disp ('') вполне приемлемы. Он ничего не возвращает и не имеет побочных эффектов.

10
ответ дан 1 December 2019 в 01:38
поделиться

Вот ничего не делать анонимная функция. Он ничего не делает и возвращает пустой массив, который можно просто игнорировать. Вам нужно будет подавить disp, поставив после него точку с запятой.

debug_disp = @(str) [];

disp ([]) тоже должен работать нормально. Какой стиль вы предпочитаете.

3
ответ дан 1 December 2019 в 01:38
поделиться

попробуйте debug_disp = @ (str) (1);

2
ответ дан 1 December 2019 в 01:38
поделиться

Если вы просто ищете Команда "do-nothing" для замены тела анонимной функции, я бы, вероятно, выбрал DRAWNOW :

debug_disp = @(str) drawnow;

Это просто очистит очередь событий и обновит графику вместо отображения текста.

3
ответ дан 1 December 2019 в 01:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: