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

2. Данные Matlab

В простейшем случае общение пользователя с СКМ Matlab происходит в командном окне. Работа с системой в режиме прямых вычислений носит диалоговый характер и происходит по правилу "задал вопрос, получил ответ". Пользователь набирает на клавиатуре вычисляемое выражение, при необходимости редактирует его в командной строке и завершает ввод нажатием клавиши Enter. Признаком того, что Matlab готов к восприятию и выполнению очередной команды, является наличие в последней строке командного окна знака приглашения – символа ">>" справа от которого расположен мигающий курсор. Эта строка называется командной. Данные вводятся с помощью простейшего строчного редактора. Для блокировки вывода результата вычислений некоторого выражения (эхо-печати) после него надо установить знак ";" (точка с запятой). Если не указана переменная для размещения значения результата вычислений, то Matlab автоматически назначает для этой цели переменную с именем ans. Результат вычислений выводится в строках вывода (без знака ">>").

Типы данных

Система типов (классов) Matlab (рис. 1.2) использует в качестве базового типа массив (array). На его основе конструируются другие типы данных.

Char – символьный тип; числовые (numeric) типы целые: семейства init и unit – со знаком и без (число в имени типа определяет длину в битах) и действительные: single и double –с одинарной и двойной точностью соответственно; logical – логический тип; cell – ячейка; struct – структура (запись); function handle – указатель на функцию (ссылка). По мере необходимости их особенности будут рассмотрены.

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

Числовые константы

Число – простейший объект языка Matlab, представляющий количественные данные. Числа можно считать константами, имена которых совпадают с их значениями. Числа используются в общепринятом представлении о них. Они могут быть целыми, дробными, с фиксированной и плавающей точкой. Возможно представление чисел в хорошо известном научном формате с указанием мантиссы и порядка числа. Например

2

0.1234

-1.0003

123.45е-24

-234.456е10

Как нетрудно заметить, целая часть числа отделяется от дробной не запятой, а точкой, как принято в большинстве языков программирования. Для отделения порядка числа от мантиссы используется символ "е". Пробелы между символами в числах не допускаются. Числа могут быть комплексными: 3+5j. Такие числа содержат действительную (3) и мнимую (5j) части. Мнимая часть имеет множитель i или j, означающий :

3i

2j

2+3i

-3.245i

-123.456+2.7e-3j

При вводе значений комплексных чисел с клавиатуры Matlab критично относится к расположению множителя мнимой части. Если i или j указаны после числового значения, то знак умножения можно не ставить. Но если множитель стоит перед числом, то наличие * обязательно:

>> x=2+j3

??? Undefined function or variable 'j3'.

>> x=2+j*3

x =

2 + 3i

>> x=2+3j

x =

2 + 3i

Числа, с которыми чаще всего оперирует Matlab, в памяти компьютера представляются вещественными или комплексными значениями в формате double. Это означает, что каждое вещественное число занимает в оперативной памяти 8 байтов и может принимать по модулю значения из диапазона [10-308; 10308]. Количество значащих цифр при этом достигает 16-17. Комплексное число соответственно занимает в памяти 16 байтов. При отображении числовых результатов часть значащих цифр отбрасывается в соответствии с установленным форматом вывода: целые числа выводятся не более чем с девятью цифрами, вещественные с фиксированной точкой – не более чем с четырьмя цифрами в дробной части, очень большие или очень маленькие числа – в формате с плавающей точкой и пятью значащими цифрами. Отображаемые значения округляются по общепринятым в математике правилам. Задать формат отображения чисел можно с помощью команды format. Действие команды format сохраняется до ее отмены другой командой format. В табл. 1.1 показано отображение значения 5/7 в наиболее часто используемых форматах. Следует помнить, что формат отображения никак не влияет на формат представления числа в памяти. Если не указано особо Matlab хранит числовые значения и выполняет вычисления с двойной точностью. Как следствие в Matlab (особенно до версии 7) в общем случае не принято делить числа на целые и дробные, короткие и длинные и т.д., как это принято в большинстве языков программирования, хотя задавать числа в таких формах можно.

Таблица 1.1

Формат

Описание

Действие

Пример

short

Краткая запись в формате с фиксированной точкой

не больше шести значащих цифр, четыре цифры после десятичной точки

>> format short

>> 5/7

ans =

0.7143

>>

long

Длинная запись в формате с фиксированной точкой

все цифры числа, четырнадцать цифр после десятичной точки

>> format long

>> 5/7

ans =

0.71428571428571

>>

short e

Краткая запись в формате с плавающей точкой

экспоненциальное представление с пятью значащими цифрами

>> format short e

>> 5/7

ans =

7.1429e-001

>>

long e

Длинная запись в формате с плавающей точкой

все цифры числа;

экспоненциальное представление с пятнадцатью значащими цифрами

>> format long e

>> 5/7

ans =

7.142857142857143e-001

>>

rational

Запись в виде рациональной дроби

числа приближенно представляются отношение двух целых чисел

>> format rational

>> 5/7

ans =

5/7

>>

compact

Компактный вывод результата

пустые строки между строками результата не выводятся

все результаты в методичке представлены в compact