Как вывести данные matlab

Консольный ввод – вывод.

Дата добавления: 2015-06-12 ; просмотров: 5299 ; Нарушение авторских прав

Лабораторная работа №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 – файл завершил выполнение.

Не нашли то, что искали? Google вам в помощь!

Источник

MATLAB — Вывод данных

Экспорт данных (или вывод) в MATLAB означает запись в файлы. MATLAB позволяет вам использовать ваши данные в другом приложении, которое читает файлы ASCII. Для этого MATLAB предоставляет несколько вариантов экспорта данных.

Вы можете создать следующий тип файлов —

Прямоугольный файл данных ASCII с разделителями из массива.

Дневник (или журнал) файла нажатий клавиш и результирующего текстового вывода.

Специализированный файл ASCII с использованием низкоуровневых функций, таких как fprintf.

MEX-файл для доступа к вашей подпрограмме C / C ++ или Fortran, которая записывает в определенный формат текстового файла.

Прямоугольный файл данных ASCII с разделителями из массива.

Дневник (или журнал) файла нажатий клавиш и результирующего текстового вывода.

Специализированный файл ASCII с использованием низкоуровневых функций, таких как fprintf.

MEX-файл для доступа к вашей подпрограмме C / C ++ или Fortran, которая записывает в определенный формат текстового файла.

Помимо этого, вы также можете экспортировать данные в электронные таблицы.

Существует два способа экспорта числового массива в виде файла данных с разделителями ASCII:

Использование функции сохранения и указание спецификатора -ascii

Использование функции dlmwrite

Использование функции сохранения и указание спецификатора -ascii

Использование функции dlmwrite

Синтаксис для использования функции сохранения —

где my_data.out — созданный файл данных ASCII с разделителями, num_array — числовой массив, а -ascii — спецификатор.

Синтаксис использования функции dlmwrite

где my_data.out — созданный файл данных ASCII с разделителями, num_array — числовой массив, а dlm_char — символ разделителя.

пример

Следующий пример демонстрирует концепцию. Создайте файл сценария и введите следующий код —

Когда вы запускаете файл, он показывает следующий результат —

Обратите внимание, что команда save -ascii и функция dlmwrite не работают с массивами ячеек в качестве входных данных. Чтобы создать файл ASCII с разделителями из содержимого массива ячеек, вы можете

Либо преобразуйте массив ячеек в матрицу, используя функцию cell2mat

Или экспортируйте массив ячеек, используя низкоуровневые функции файлового ввода-вывода.

Либо преобразуйте массив ячеек в матрицу, используя функцию cell2mat

Или экспортируйте массив ячеек, используя низкоуровневые функции файлового ввода-вывода.

Если вы используете функцию сохранения для записи массива символов в файл ASCII, он записывает в файл эквивалент символов ASCII.

Например, давайте напишем слово «привет» в файл —

MATLAB выполняет вышеуказанные операторы и отображает следующий результат. это символы строки ‘hello’ в 8-значном формате ASCII.

Запись в дневник

Дневниковые файлы — это журналы активности вашего сеанса MATLAB. Функция дневника создает точную копию вашей сессии в файле на диске, исключая графику.

Чтобы включить функцию дневника, введите —

При желании вы можете дать имя файла журнала, скажем —

Чтобы отключить функцию дневника —

Вы можете открыть файл дневника в текстовом редакторе.

Экспорт данных в текстовые файлы данных с низкоуровневым вводом / выводом

До сих пор мы экспортировали числовые массивы. Однако вам может потребоваться создать другие текстовые файлы, включая комбинации числовых и символьных данных, непрямоугольные выходные файлы или файлы со схемами кодирования, отличными от ASCII. Для этих целей MATLAB предоставляет низкоуровневую функцию fprintf .

Как и в низкоуровневых операциях с файлами ввода-вывода, перед экспортом необходимо открыть или создать файл с помощью функции fopen и получить идентификатор файла. По умолчанию fopen открывает файл только для чтения. Вы должны указать разрешение на запись или добавление, например, «w» или «a».

После обработки файла его необходимо закрыть с помощью функции fclose (fid) .

Следующий пример демонстрирует концепцию —

пример

Создайте файл сценария и введите в нем следующий код —

Когда вы запускаете файл, он показывает следующий результат —

Источник

Способы ввода данных и вывода результатов

Основы программирования в MATLAB

Оператор цикла for

for count = start:step:final

Здесь count – переменная цикла; start – её начальное значение; final – конечное значение; step – шаг на который увеличивается (или уменьшатся) переменная count. Если шаг равен 1, то его можно не указывать.

Например, создадим матрицу Q, размера , элементы которой вычисляются по формуле: , для этого в М-файле hil создадим цикл:

% Задание размера матрицы Q

% Инициализируем матрицу Q и заполняем её нулями

% Вычисляем элементы матрицы Q

% Отображаем матрицу на экране

Оператор цикла while

while условие цикла

В условии цикла используются операции отношения или логические операторы:

=

Обозначение Операции отношения
= = равенство
) Меньше (больше)
=) Меньше или рано (больше или равно)
Не равно
Логические операторы Условие Запись в MatLab Эквивалентная запись
Логическое « и » and (x

Оператор ветвления if

Оператор ifможет применяться в простом виде

Например, напишем файл-функцию Rfun для вычисления выражения

проверяющую значение аргумента.

function f = Rfun(x);

if abs(x) > y = Rfun(0.2)

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.8f\n’, 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’)

%создание вектора значений аргумента

%конструирование матрицы, первая строка которой содержит значение аргумента

Источник

Читайте также:  Чем стирать дорогие рубашки
Оцените статью