Типы данных. Выражения. Операторы. Функции

В системе MATLAB определено шесть базовых типов данных, каждый из которых является многомерным массивом. Шесть классов - это double, char, sparse, uint8, cell, и struct. Двумерные версии этих массивов называются матрицами, откуда MATLAB и получил свое имя МАТричная ЛАБоратория.

Диаграмма принадлежности того или иного объекта системы MATLAB к одному из классов имеет следующий вид (рисунок. 3.26):

Рисунок 3.26 Диаграмма принадлежности объектов к одному из классов

 

Чаще всего пользователям приходится иметь дело только с двумя из этих типов данных: массив чисел удвоенной точности (double) и массив символов (char), или просто строка. Это связано с тем, что все вычисления в системе MATLAB выполняются с удвоенной точностью и большинство функций работают с массивами чисел удвоенной точности или строками.

Другие типы данных предназначены для таких специальных приложений, как работа с разреженными матрицами (sparse), обработка изображений (uint8), работа с массивами большой размерности (cell и struct).

Нельзя задать тип переменной numeric или array. Эти типы называются виртуальными и служат только для того, чтобы сгруппировать переменные, которые имеют общие атрибуты.

Тип uint8 предназначен для эффективного хранения данных в памяти. К данным этого типа можно применять только базовые операции индексации и изменения размеров, но нельзя выполнить никакой математической операции. Для этого такие массивы необходимо преобразовать в тип double.

Пользователь имеет возможность создания собственных типов и добавления методов для встроенных типов. Нижеприведенная таблица содержит седьмой тип данных - UserObject. Язык MATLAB позволяет создавать собственные типы данных и работать с ними по аналогии со встроенными типами.

Для встроенных типов данных можно переопределять метод точно также, как это делается для объекта. Например, чтобы задать операцию сортировки для массива типа uint8, необходимо создать метод (sort.m или sort.mex) и поместить его в специальный каталог @uint8.

В таблице 3.2 приведены все типы данных, определенных в MATLAB.

 

Таблица 3.2 Типы данных

Класс Пример Описание
Double [12;34] 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)') Тип данных, определяемый пользователем

 

Как и большинство других языков программирования, MATLAB предоставляет возможность использования математических выражений, но в отличие от мно­гих из них, эти выражения в MATLAB включают матрицы.

Основные состав­ляющие выражения:

- переменные

- числа

- операторы

- функции