Специальные переменные. Некоторые М-функции возвращают специальные переменные, которые играют важную роль при работе в среде системы MATLAB :
ans
Последний результат; если выходная переменная не указана, то MATLAB использует переменную ans.
eps
Точность вычислений с плавающей точкой; определяется длиной мантиссы и для PC eps = 2.220446049250313e-016
realmax
Максимальное число с плавающей точкой, представимое в компьютере; для PC realmax = 1.797693134862316e+308.
realmin
Минимальное число с плавающей точкой, представимое в компьютере; для PC realmin = 2.225073858507202e-308.
pi
Специальная переменная для числа p: pi=3.141592653589793e+000.
i, j
Специальные переменные для обозначения мнимой единицы
inf
Специальная переменная для обозначения символа бесконечности ?
NaN
Специальная переменная для обозначения неопределенного значения - результата операций типа: 0/0, inf/inf.
computer
Специальная переменная для обозначения типа используемого компьютера; для PC - PCWIN.
flops
Специальная переменная для обозначения количества операций с плавающей точкой.
version
Специальная переменная для хранения номера используемой версии системы MATLAB.
Типы данных.
В системе MATLAB определено шесть базовых типов данных, каждый из которых является многомерным массивом. Шесть классов - это double, char, sparse, uint8, cell, и struct. Двумерные версии этих массивов называются матрицами, откуда MATLAB и получил свое имя МАТричная ЛАБоратория.
Класс
Пример
Описание
Double
[ 1 2; 3 4] 5 + 6i
Числовой массив удвоенной точности (это наиболее распространенный тип переменной в системе MATLAB
Char
'Привет'
Массив символов (каждый символ - длиной 16 битов), часто именуется строкой.
Sparse
Speye(5)
Разреженная матрица удвоенной точности (только двумерная). Разреженная структура применяется для хранения матриц с небольшим количеством ненулевых элементов, что позволяет использовать лишь небольшую часть памяти, требуемой для хранения полной матрицы. Разреженные матрицы требуют применения специальных методов для решения задач.
Cell
{ 17 'привет' eye (2)}
Массив ячеек. Элементы этого массива содержат другие массивы. Массивы ячеек позволяют объединить связанные данные, возможно различных размеров, в единую структуру.
Struct
A.day = 12; A.color = 'Red'; A.mat = magic(3);
Массив записей. Он включает имена полей. Поля сами могут содержать массивы. Подобно массивам ячеек, массивы записей объединяют cвязанные данные и информацию о них.
Uint8
Uint8 (magic (3))
Массив 8-разрядных целых чисел без знаков. Он позволяет хранить целые числа в диапазоне от 0 до 255 в 1/8 части памяти, требуемой для массива удвоенной точности. Никакие математические операции для этих массивов не определены.
UserObject
inline('sin(x)')
Тип данных, определяемый пользователем
Каждому типу данных можно соотнести свои функции и операторы обработки, или другими словами, методы. Дочерние типы данных, расположенные на диаграмме ниже родительского типа, поддержаны также и методами родителя. Следовательно, массив типа double поддержан методами, применяемыми для типа numeric.
В таблице приведены некоторые из таких методов:
Класс
Метод
Массив array
Вычисление размера (size), длины (length), размерности (ndims), объединение массивов ([a b]), транспонирование (transpose), многомерная индексация (subsindex), переопределение (reshape) и перестановка (permute) размерностей многомерного массива.
Массив ячеек cell
Индексация с использованием фигурных скобок {e1,…,en} и разделением элементов списка запятыми.
Строка Char
Строковые функции (strcmp, lower), автоматическое преобразование к типу double для применения методов класса double.
Double
Арифметические и логические операции, математические функции, функции от матриц.
Numeric
Поиск (find), обработка комплексных чисел (real, imag), формирование векторов, выделение строк, столбцов, подблоков массива, расширение скаляра.
Sparse
Операции над разреженными матрицами.
Массив записей Struct
Доступ к содержимому поля .field (разделитель элементов списка - запятая).
Uint8
Операция хранения (чаще всего используется с ППП Image Processing Toolbox)
UserObject
Определяется пользователем
Арифметические операторы. При работе с массивом чисел установлены следующие уровни приоритета среди арифметических операций :
уровень 1:
поэлементное транспонирование (.'), поэлементное возведение в степень (.^), эрмитово сопряженное транспонирование матрицы ('), возведение матрицы в степень (^);
Операторы отношения. В системе MATLAB определено 6 следующих операторов отношения:
< Меньше
<= Меньше или равно
> Больше
> = Больше или равно
== Равно тождественно
~ = Не равно
Операторы отношения выполняют поэлементное сравнение двух массивов равных размерностей. Для векторов и прямоугольных массивов, оба операнда должны быть одинакового размера, за исключением случая когда один из них скаляр. В этом случае MATLAB сравнивает скаляр с каждым элементом другого операнда. Позиции, где это соотношение истинно, получают значение 1, где ложно - 0.
Операторы отношения, как правило, применяется для изменения последовательности выполнения операторов программы. Поэтому они чаще всего используются в теле операторов if, for, while, switch.
Операторы отношения всегда выполняются поэлементно.
Пример 1.
Выполним сравнение двух массивов, используя условие А<B: