Matlab -nodesktop и цвета ANSI при предупреждениях и ошибках

У меня есть привычка использовать матлаб с опцией -nodesktop, и мне было интересно, можно ли печатать предупреждения и ошибки в цветах. ` На данный момент я попробовал кое-что

  • Я пытался изменить функцию Matlab в warning.m, но эти функции встроены, и я не могу их изменить.
  • Я пытался следить за этот пост и мне пришлось создать папку @char где-то на моем пути с функцией там с чем-то вроде этого

    function varargout = warning(varargin) fprintf('\033[33m'): [varargout{1:nargout}] = builtin('warning',varargin{:}); fprintf('\033[0m'); end

    Я пытался не использовать напрямую функцию warning, потому что у меня был бы бесконечный цикл. Проблема в том, что некоторые предупреждения (например в функции imshow) вызываются так

    warning(message('images:imshow:magnificationMustBeFitForDockedFigure'))

    и не вызывает функцию в папке @char.

  • Я также подумал о создании другой программы, которая вызывала бы Matlab и окрашивала ее, когда находила предупреждения или ошибки (или вызывала Matlab с помощью интеллектуальной команды оболочки, окрашивающей строки, где появляется warning, но это кажется сложным).

Кто-нибудь знает, как я могу решить мою проблему?


person tforgione    schedule 18.08.2014    source источник
comment
Если вы запустите Matlab в обычном режиме и удалите все вспомогательные панели и панели инструментов, он будет выглядеть как -nodesktop, но с причудливой окраской текста.   -  person Luis Mendo    schedule 18.08.2014
comment
Ну да, но я как бы привык к терминатору и хотел бы сохранить его для матлаба. Все равно спасибо !   -  person tforgione    schedule 18.08.2014


Ответы (1)


Вам также потребуется переопределить функцию предупреждения для класса @message. Посмотрите, что происходит, когда вы запускаете:

metaclass(message('images:imshow:magnificationMustBeFitForDockedFigure'))
person MattyB    schedule 25.08.2014