Для обеспечения взаимодействия с пользователем в процессе выполнения М-файлов в Matlab используются следующие команды (операторы).
disp – вывод значений указанной переменой или указанного текста в командное окно.
Особенность этой команды является то, что аргумент у нее может быть только один. Поэтому, без специальных приемов невозможно осуществить вывод нескольких переменных, и, в особенности, объединение текста с числовыми значениями, что часто является необходимым и удобным.
Чтобы вывести значения нескольких переменных, например, для печати таблиц, нужно создать единый объект, который содержал бы все эти значения. Это можно сделать, объединением соответствующих переменных в единый вектор, пользуясь операцией создания вектора-строки:
disp ( [x1, x2…xN]).
Аналогично можно объединить несколько текстовых переменных:
disp ([‘столбец 1’, ‘столбец 2’… ‘столбец N’])
Сложнее объединить в одну строку текст и значения переменных, это часто бывает необходимым. Трудности возникают потому, что нельзя объединять текстовые и числовые переменные. Задача решается с помощью функции num2str, которая осуществляет такое преобразование.
ОператорS=num2str(x) преобразует числовое значение переменной в текстовое представление.
Пусть х – числовая переменная. Тогда вывод ее значения с поясняющим текстом обеспечивается вызовом нижеследующим вызовом функции disp:
disp ([‘текст пояснения’, num2str (x)])
Например, если х=0,5, то в результате вызова
disp ([‘значение х: ’, num2str (x)])
будет напечатано:
значение х: 0,5.
Другой способ достижения этого же результата заключается в использование функции sprintf.
Обращение к ней имеет вид:
S=sprintf (‘текст 1 % frm текст 2’, х)
В результате создается текстовая строка S, состоящая из текста, указанного в тексте1, и значения переменной х в формате frm. Текст из фрагмента ‘текст 2’ размещается после значения переменной х. Эту функцию можно использовать в вызове disp:
>>disp (sprintf (‘текст 1 % frm’, х)).
В нижеследующей таблице приведены спецификаторы формата, используемые в функции sprintf:
Спецификатор
Описание
%с
Один символ
%d
Десятичное число со знаком
%e
Представление с плавающей точкой, 3.14е+00
%E
Представление с плавающей точкой, 3.14Е+00
%f
Представление с фиксированной точкой
%g
Более компактное, чем в %е или %f представление с подавлением незначащих нулей.
%G
То же, что %g, но Е – на верхнем регистре
%o
Восьмеричное представление (без знака)
%s
Символьная строка
%u
Десятичное без знака
%x
Шестнадцатеричное представление, (буква a-f)
%X
Шестнадцатеричное представление, (буква A-F)
Пример:
>>X = 0.000000000000001;
>>Y = sprint (‘Параметр_1 = % g’, X)
Y = параметр_1 = 1е-15
Удобным инструментом выбора некоторой из альтернатив является функция menu, которая создает окно меню пользователя. Функция имеет следующий формат:
К = menu(‘’, ‘Альтернатива_1’, ‘Альтернатива_2’… ‘Альтернатива_N’)
Пример: в результате вызова функции menuс параметрами, как это показано ниже,
К = menu ('What?', 'Go', 'Exit');
на экране появится следующие меню:
Выполнение программы приостанавливается, программа ожидает выбора одной из кнопок с альтернативами. После нажатия какой – либо кнопки выходному параметру присваивается значение номера выбранной альтернативы. Альтернативы нумеруются числами от 1 до N. В зависимости от значения K можно выбрать нужное продолжение программы.
Для ввода данных с клавиатуры удобно использовать функцию input, обращение к которой имеет следующий вид:
x = input (‘текст-подсказка’)
При обращении к этой функции программа приостанавливается, и ожидает ввода с клавиатуры. После ввода введенное значение присваивается переменной x и программа продолжит свою работу.
Пример script – файла, использующего рассмотренные выше вызовы:
k = 1;
global F;
while (k = = 1)
x = input ('Enter x:');
F = sin(x);
disp(F);
k = menu('What?','Go','Exit');
end;
В результате выполнения этого script – файла в командном окне будет следующее:
>> Script_1
Enter x:pi/4
0.7071
Enter x:3*pi/2
-1
>>
При выполнении данного файла в меню была два раза выбрана кнопка «Go», что привело к тому, функция sin была вычислена два раза, и два раза напечатан результат вычисления. В третий раз была выбрана кнопка «Exit», и script – файл завершил выполнение.