И другие программы этой серии
>> sinh(1)
ans = 1.1752
1.4.11. Сообщения об ошибках
и исправление ошибок
Большое значение при диалоге с системой MATLAB и отладке программ в ней
имеет диагностика ошибок. Рассмотрим ряд примеров, поясняющих технику ди
агностики. Введем, к примеру, ошибочное выражение
>> sqr(2)
и нажмем клавишу ENTER. Система сообщит об ошибке:
??? Undefined function or variable \'sqr\'.
Это сообщение говорит о том, что не определена переменная или функция, и
указывает, какая именно, – sqr. В данном случае, разумеется, можно просто на
брать правильное выражение. Однако в случае громоздкого выражения лучше
воспользоваться редактором. Для этого достаточно нажать клавишу v?для пере
листывания предыдущих строк. В результате в строке ввода появится выражение
>> sqr(2)
с курсором в его конце. В MATLAB можно теперь нажать клавишу Tab. Система
введет подсказку, анализируя уже введенные символы. Из предложенных систе
мой трех операторов выбираем sqrt. Теперь c помощью клавиши v?вновь выбира
В этом примере мы забыли (нарочно), какое имя имеет внешняя функция, вы
числяющая гиперболический синус. Система подсказала, что функция или пере
менная с именем hsin не определена – ни как внутренняя, ни как m функция.
Зато далее мы видим, что функция с именем sinh есть в составе функций систе
мы MATLAB – она задана в виде M функции, хранящейся на жестком диске.
Между тем в последнем примере мы не давали системе никаких указаний на то,
что следует искать именно внешнюю функцию! И это вычисление прошло так же
просто, как вычисление встроенной функции, такой как sin.
Иногда в ходе вывода результатов вычислений появляется сокращение NaN
(от слов Not a Number – не число). Оно обозначает неопределенность, например
вида 0/0 или Inf/Inf, где Inf – системная переменная со значением машинной
бесконечности. Могут появляться и различные предупреждения об ошибках (на
английском языке). Например, при делении на 0 конечного числа появляется пре
дупреждение «Warning: Devide by Zero.» («Внимание: деление на нуль»).