Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Числ_методы_I_(лаб).doc
Скачиваний:
218
Добавлен:
05.06.2015
Размер:
3.44 Mб
Скачать

Простейшие способы ввода–вывода информации

Во встроенном языке Matlab’а нет явных операторов ввода–вывода данных в командное окно. Проблема ввода данных в нём решается оператором присваивания и использованием системных констант. К системным константам относятся:

  • Pi – число = 3.1415…;

  • i или j – мнимая единица ;

  • NaN – неопределенность вида 0/0;

  • Inf – бесконечность типа 1/0;

  • ans – идентификатор результата последней операции

и другие.

Вывод данных осуществляется еще проще. Для этого необходимо после математического выражения не ставить точку с запятой «;».

Как известно, в Matlab’е при вычислениях в числе сохраняется 15 цифр. Однако при выводе результатов вычислений в командное окно по умолчанию выдаются числа с 4 цифрами после десятичной точки в действительной форме. Эту форму вывода данных можно менять. Для этого в программе перед выводимой величиной следует использовать командуformat name, гдеname– имя формата, которое для числовых данных имеет следующие значения:

  • short – короткое представление числа в фиксированном формате из 5-ти знаков и десятичной точки;

  • short е – короткое представление числа в экспоненциальной форме с 5-ю знаками мантиссы и 3-я знаками порядка;

  • long – длинное представление числа в фиксированном формате из 15-ти знаков и десятичной точки;

  • long е – длинное представление числа в экспоненциальной форме с 15-ю знаками мантиссы и 3-я знаками порядка.

В качестве примера можно привести фрагменты программы, организующие вывод компонент вектора из двух элементов. При командах

format short

x = [5/3 1.2345e-7]

будет выведено

1.6667 0.0000

При

format short e

x = [5/3 1.2345e-7]

будет выведено

1.6667E+000 1.2345E–007

При

format long

x = [5/3 1.2345e-7]

будет выведено

1.66666666666667 0.00000012345000

При

format long e

x = [5/3 1.2345e-7]

будет выведено

1.66666666666667E+000 1.2345000000000E-007

Иные способы ввода и вывода информаци будут описаны ниже.

Векторы и матрицы

Matlabизначально был предназначен для выполнения вычислений с векторами и матрицами. Поэтому по умолчанию предполагается, что каждая переменная, в том числе и скалярная – это вектор или матрица. Например, если в программе заданох=1, то это значит, что переменнаях– вектор с одним элементом, равным 1. Если надо задать вектор из трех элементов 2.87, 3.62 и 4.12, то их значения надо перечислить в квадратных скобках, разделяя пробелами, например

>>V = [2.87 3.62 4.12].

В данном случае задан вектор–строка. Если разделить элементы точкой с запятой, то получим вектор–столбец

>>V = [2.87; 3.62; 4.12].

Матрицы в Matlab’е задаются построчно. Для разграничения строк используется точка с запятой «;». Например, для задания матрицы

следует записать

>>Т = [2 -1 4 2; 3 5 -1 4; -2 8 0 -1].

Для указания отдельного элемента вектора или матрицы используются их индексация. Например, если элементу Т(i,j)надо присвоить новое значениех, то используют оператор присваивания вида

>>Т(3,2) = х;

Аналогично организуется обращение к элементам матрицы, например

>>z=Т(3,2)^2+2;

Наряду с операциями над отдельными элементами матриц и векторов Matlabпозволяет выполнять арифметические операции сразу над всеми элементами. Для этого перед знаком операции ставится точка (см. табл.1).

Имеются также ряд особых функций для задания векторов и матриц. Следует отметить функции onesиzeros. Функцияonesсоздает матрицу или вектор с единичными элементами

>> а = ones(3,2)

Функция zerosсоздает массив с нулевыми элементами

>> B = zeros(3,4)

Следует отметить одну особенность вывода матриц в командное окно. Если элементы каждой строки матрицы не помещаются в командное окно, то Matlabвыводит подзаголовок каждой строки, в котором указывает номера её элементов. Так вектор из 11-ти элементов будет выведен следующим образом

y =

Columns 1 through 7

1.0000 1.0000 1.2397 1.7126 1.9835 1.6161 1.2249

Columns 8 through 11

0.9708 0.8441 0.7278 0.6613