Вывод в matlab
Консольный ввод – вывод.
Дата добавления: 2015-06-12 ; просмотров: 2754 ; Нарушение авторских прав
Лабораторная работа №5
Ввод – вывод в системе Matlab.
Консольный ввод – вывод.
Для обеспечения взаимодействия с пользователем в процессе выполнения М-файлов в 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) |
>>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 – файла, использующего рассмотренные выше вызовы:
x = input (‘Enter x:’);
В результате выполнения этого script – файла в командном окне будет следующее:
При выполнении данного файла в меню была два раза выбрана кнопка «Go», что привело к тому, функция sin была вычислена два раза, и два раза напечатан результат вычисления. В третий раз была выбрана кнопка «Exit», и script – файл завершил выполнение.
| | следующая лекция ==> | |
Создание файл – функций (процедур). | | | Файловый ввод – вывод. |
Полезен материал? Поделись: |
Обозначение | Операции отношения |
= = | равенство |
) | Меньше (больше) |
=) | Меньше или рано (больше или равно) |
Не равно |
Логические операторы | Условие | Запись в MatLab | Эквивалентная запись | |
Логическое « и » | ![]() | and (x Команда warningслужит для вывода предупреждения в командное окно. Теперь вызов Rfun от аргумента, меньшего единицы по модулю, приведет к выводу в командное окно предупреждения: Warning: результат комплексный В общем виде оператор ветвления представляет конструкцию if — elseif – else Напишем файл-функцию ifdem, демонстрирующую работу if — elseif – else. disp(‘a равно нулю’) disp(‘a больше или равно 3’) disp(‘a меньше 3, но не равно 0, 1, 2’) В зависимости от выполнения того или иного условия работает соответствующая ветвь программы, если все условия неверны, то выполняются команды, размещенные после else. Вызовем функцию ifdem с аргументом 1.2: a меньше 3, но не равно 0, 1, 2 При организации циклических вычислений следует, позаботься о том, чтобы внутри цикла не возникало ошибок, и не было зацикливания программы. Для досрочного прерывания цикла можно использовать команду break. Оператор breakпрерывает цикл и происходит выполнение операторов, расположенных в строках следующих за последним end. Например, напишем программу prch, определяющую является ли заданное число N простым. N = input(‘Ведите число: ‘) % Предполагаем, что число простое (pr=1) % Перебираем все возможные делители числа N от 2 до N/2 % Если N делится на i, % то число N не является простым (pr=0) % и прерывается выполнение цикла % Если pr равно 1, то N — простое число disp(‘НЕ ЯВЛЯЕТСЯ ПРОСТЫМ ЧИСЛОМ’) Прервать не только цикл, но и программу можно также оператором error. Например, изменим начало программы prch. N = input(‘Ведите число: ‘) if (N > 0) & (ost == 0) % Предполагаем, что натуральное число простое (pr=1) error(‘ЧИСЛО N НЕ ЯВЛЯЕТСЯ НАТУРАЛЬНЫМ’) % Перебираем все возможные делители числа N от 2 до N/2 Теперь, если ввести число, не являющимся натуральным, то программа прервется и укажет об ошибке ввода. 4. Оператор альтернативного выбора switch Одним из способов организации разветвлений является оператор switch, имеющий следующую структуру Если значение параметра равно значению 1, то выполняются операторы 1, иначе, если параметр равен 2, то выполняются операторы 2 и т.д. Если значение параметра не совпадает ни с одним из значений в группах case, то выполняются операторы, которые идут после слова otherwise. Например, выведем на экран название дня недели, соответствующее заданному числу D, при условии что в месяце 31 день и 1-ое число – понедельник. D = input(‘ВВЕСТИ ЧИСЛО ОТ 1 ДО 31: ‘) md = mod(D,7); %ВЫЧИСЛЕНИЕ ОСТАТКА ОТ ДЕЛЕНИЯ D НА 7 Функции от функций MatLab предоставляет возможность написания файл-функции, входными аргументами которых, наряду с обычными переменными, являются и другие файл-функции. При этом имя файл-функции передается в строковой переменной, а её вычисления производиться при помощи команды feval. Например, напишем файл-функцию, которая проверяет попадает ли значение функции function str = znach (’fname’, ymin, ymax, x) % проверка входных аргументов error(‘нижняя граница должна быть меньше верхней’) y = feval(fname, x) if (y >= ymin) & (y > r = znach(‘sin’, 0.2, 0.5, pi/5) значение функции не попадает в заданный интервал Способы ввода данных и вывода результатов 1.Исходные данные можно задавать с помощью оператора присваивания. A = [1.2 3.2 4.5; 2.3 7.8 4.4]; 2. Интерактивный ввод осуществляется с помощью команды input – запрос на ввод с клавиатуры. Если в M-файле набрать команду a = input(‘Ведите значение a = ‘) % ввод значения с клавиатуры и занесение введенного значения в а то, в командном окне появится надпись Ведите значение a = | далее следует ожидание ввода пользователем значения a. 1. Вывод на экран можно осуществить с помощью команды disp. Результат на экране будет выведен в том формате, который был выбран заранее или по умолчанию. 2. Функция fprintf позволяет управлять видом записи чисел. Схема использования fprintf для вывода на экран при работе с числовыми переменными такова: fprintf(‘формат’, список переменных). Например, требуется записать значения переменных fprintf(‘x = %7.4f, y = %11.8fn’, x, y) В результате, в командном окне увидим x = 0.7854, y = 0.70710678 Последовательность %7.4f задает формат вывода переменной x, которая расположена первой в последовательности вывода. Знак процента указывает на начало формата, цифра 7 обозначает, что всего под значение переменной x отводится 7 позиций (включая знак и десятичную точку), цифра 4 после разделителя-точки обеспечивает точность отображения результата ─ четыре цифры после десятичной точки. Спецификатор f указывает на то, что следует вывести число в формате с плавающей точкой. Аналогичным образом работает формат %11.8f для вывода y. Для вывода целого числа используется формат %d. Завершение строки с форматами символом n приводит к последующему выводу данных с новой строки. Формат fprintf работает с матрицей по столбцам. Например, напечатаем таблицу значений функции sin(x). %Печать заголовка таблицы fprintf(‘ ТАБЛИЦА ЗНАЧЕНИЙ ФУНКЦИИ sin(x)n’) fprintf(‘ | x | y |n’) %создание вектора значений аргумента %конструирование матрицы, первая строка которой содержит значение аргумента ДокументацияФормат выводаMATLAB ® отображает вывод и в Командном окне и в Live Editor. Формат вывода можно изменить при помощи нескольких настроек. Интервал строки форматов в ВыводеПо умолчанию, отображения MATLAB очищает строки в командном окне выход. Можно выбрать одну из двух опций цифрового дисплея в MATLAB. loose — Сохраняет отображение пустых строк (значение по умолчанию). compact — Подавляет отображение пустых строк. Чтобы отформатировать выходное отображение, выполнить одно из следующих действий: На вкладке «Главная страница (Home)» в разделе «Конфигурация (Environment)» нажмите «Настройки (Preferences)». Используйте format функция в командной строке, например: ПримечаниеПараметры экрана межстрочного интервала не применяются в Live Editor. Числа с плавающей запятой форматаМожно изменить способ, которым числа отображаются и в Командном окне и в Live Editor. По умолчанию MATLAB использует формат short (5-разрядные масштабированные значения фиксированной точки). Например, предположите, что вы вводите x = [4/3 1.2345e-6] в Командном окне. Выходное отображение MATLAB зависит от формата, который вы выбрали. Эта таблица показывает некоторые доступные форматы цифрового дисплея, и их соответствующий выход.
|