Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаИПлб.doc
Скачиваний:
39
Добавлен:
08.05.2019
Размер:
6.96 Mб
Скачать

2. Диалоговый ввод/вывод

В процессе выполнения m-файла пользователь может вывести на экран запрос и ввести соответствующую информацию с клавиатуры; сделать паузу до нажатия клавиши.

Формирование запроса для ввода данных с клавиатуры выполняется функцией input

ИмяПеременной = input('Текст запроса')

При выполнении данной операции присваивания в командное окно выводится сообщение Текст запроса и выполнение программы приостанавливается до тех пор, пока пользователь не введет число с клавиатуры и не нажмет на клавишу Enter.

Функция возвращает введённое с клавиатуры числовое значение и размещает его в переменной, имя которой указано слева от оператора присваивания

>> x = input('Задайте значение аргумента ')

Задайте значение аргумента 7.5

x =

7.5000

По умолчанию выполняется эхо-печать значения переменной-приемника. Как и для любой функции использование символа ; подавляет печать результата ввода. Если в ответ на запрос пользователь вводит арифметическое выражение, то функция input вычисляет его и возвращает в переменную-приемник полученное значение

>> f=50;

>> w = input('Задайте частоту в рад/с ')

Задайте частоту в рад/с 2*pi*f

w =

314.1593

Можно вводить и матрицы

>> coord = input('Задайте координаты точки ')

Задайте координаты точки [2.5 -3]

coord =

2.5000 -3.0000

или

>> A = input('Задайте матрицу 4 на 4 ')

Задайте матрицу 4 на 4 [11 12; 21 22]

A =

11 12

21 22

Функция input может возвращать не только числовые значения, но и строковое выражение, вводимое пользователем. Для ввода строки символов в список параметров функции вторым входным аргументом необходимо указать 's'. На запрос input следует ввести строку текста, не заключая ее в апострофы. Например

>> file_name = input('Укажите имя файла: ','s')

Укажите имя файла: data.txt

file_name =

data.txt

Переменная file_name становится строкой из восьми символов.

Если в списке параметров функции input не указать 's', то строковое значение необходимо вводить в апострофах

>> symbol = input('Введите символ: ');

Введите символ: 'W'

symbol=

W

Для выдачи результата на экран используется функция disp, предназначенная для вывода значений в командное окно Matlab. С ее помощью можно выводить числовые, символьные (текст) и логические значения, задавая их константами, именами переменных или выражениями соответствующего типа. По-умолчанию функция работает только с одним входным параметром и каждый disp начинает вывод значений с новой строки. Если одним disp необходимо вывести несколько значений в одной строке, то их следует конкатенировать (сцепить) в единый вектор (подобную "хитрость" мы уже применяли при использовании функции size для работы с матрицами). Внимание: сцеплять разрешено только однотипные данные! В связи с этим полезными бывают функции преобразования типа (табл. 3.1). Имена функций преобразования построены по схеме

исходный_тип to тип_результата

(вместо to используется 2).

Таблица 3.1

Функция

Описание

Пример использования

num2str

Преобразование числового значения в строковое

>> stroka=['2+3=' num2str(2+3)]

stroka =

2+3=5

str2num

Преобразование строкового значения в числовое

>> s=['1.5' '-2j']

>> number=str2num(str)

number =

1.5000 - 2.0000i

В некоторых случаях бывает целесобразно устанавливать паузу между отдельными шагами алгоритма, например, при выводе на экран последовательности графиков. Команда

pause

останавливает выполнение программы до тех, пока не будет нажата какая-нибудь клавиша. Чтобы реализовать паузу в n секунд, необходимо выполнить

pause(n).