Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИНТЕЗ ЦИФРОВЫХ ФИЛЬТРОВ С ИСПОЛЬЗОВАНИЕМ ПАКЕТА ПРОГРАММ MATLAB.DOC
Скачиваний:
212
Добавлен:
01.05.2014
Размер:
1.41 Mб
Скачать

5.11. Текстовые строки, сообщения об ошибках, ввод данных

Текстовые строки вводятся в MATLAB в апострофах. Например, S='This is a text' назначает данную строку переменной S.

Текстовые строки могут быть напечатаны с помощью функции disp. Например,

disp('This message is hereby displayed')

Сообщение об ошибках лучше выводить с помощью функции error:

error('Sorry, the matrix must be symmetric')

так как эта функция вызовет выход из M-файла.

С помощью М-файла можно обеспечить ввод данных в интерактивном режиме. Это делается функцией input. Например,

iter=input('введите число итераций: ')

выдаст подсказывающее сообщение, а затем будет ожидать, пока пользователь не введет требуемые данные. После нажатия <BK> введенные данные будут присвоены переменной iter и выполнение М-файла возобновится.

Команда MATLAB dir выдает на экран содержимое текущей директории, тогда как команда what выдает только М-файлы из этой директории. Команды MATLAB delete и type используются для удаления или отображения файла на экран соответственно. Команда chdir меняет текущую рабочую директорию.

5.12. Сравнение эффективности алгоритмов

Два основных показателя, по которым можно определить эффективность алгоритмов (количество операций с плавающей точкой и время их выполнения), определяются с помощью команд MATLAB flops и etime.

Функция flops ведет общий подсчет количества операций с плавающей точкой. Команда flops(0) установит счетчик в нулевое состояние. Следовательно, если подать команду flops(0) перед началом выполнения некоторого алгоритма и команду flops сразу после окончания вычислений, можно получить количество операций с плавающей точкой для этого алгоритма.

Функция MATLAB clock определяет текущее время с точностью до сотых секунды. Имея два показателя времени t1 и t2 и подав команду etime(t2,t1), получим время, прошедшее с момента t1 до момента t2. Например, можно измерить время, необходимое для решения данной линейной системы A*x=b, используя исключения по Гауссу, следующим образом:

time=clock;

x=A\b;

time=etime(clock,time)

Вы можете сравнить время и число операций с плавающей точкой для этого способа решения систем и, например, для операции x = inv(A)*b.

5.13. Формат вывода

Хотя все вычисления в MATLAB выполнятся с двойной точностью, результаты на экране могут быть представлены по-разному. Форматом вывода можно управлять следующими командами:

  • format short – формат с фиксированной точкой; 4 значащих цифры после десятичной точки (установлен по умолчанию);

  • format long – формат с фиксированной точкой; 14 знаков после точки;

  • format short e – формат с плавающей точкой; 4 значащих цифры в мантиссе;

  • format long e – формат с плавающей точкой; 15 значащих цифр в мантиссе.

Выбранный однажды формат остается в силе до следующего изменения.

Команда format compact подавит большинство пустых строк, разместив на странице или на экране максимум полезной информации. Она независима от остальных команд установки формата.

5.14. Протокол

Проще всего получить протокол, используя команду diary. Подача команды diary <имя файла> повлечет запись в указанный файл всего, что появляется на экране (кроме графики). Если имя файла опущено, то запись производится в стандартный файл с именем diary. Команда diary off прекращает запись, diary on возобновляет ее. Таким образом, можно протоколировать наиболее интересные моменты работы. По окончании работы файл-протокол может быть отредактирован и распечатан.