MATLAB - Типы данных
MATLAB не требует объявления типа или операторов измерения. Всякий раз, когда MATLAB встречает новое имя переменной, он создает переменную и выделяет соответствующее пространство памяти.
Если переменная уже существует, то MATLAB заменяет исходное содержимое новым содержимым и выделяет новое пространство для хранения, где это необходимо.
Например,
Total = 42
Вышеупомянутый оператор создает матрицу 1 на 1 с именем Total и сохраняет в ней значение 42.
Типы данных, доступные в MATLAB
MATLAB предоставляет 15 основных типов данных. Каждый тип данных хранит данные в форме матрицы или массива. Размер этой матрицы или массива составляет минимум 0 на 0, и он может увеличиваться до матрицы или массива любого размера.
В следующей таблице показаны наиболее часто используемые типы данных в MATLAB -
| Sr.No. | Тип данных и описание |
|---|---|
| 1 | int8 8-битное целое число со знаком |
| 2 | uint8 8-битное целое число без знака |
| 3 | int16 16-битное целое число со знаком |
| 4 | uint16 16-битное целое число без знака |
| 5 | int32 32-битное целое число со знаком |
| 6 | uint32 32-битное целое число без знака |
| 7 | int64 64-битное целое число со знаком |
| 8 | uint64 64-битное целое число без знака |
| 9 | single числовые данные одинарной точности |
| 10 | double числовые данные двойной точности |
| 11 | logical логические значения 1 или 0 представляют истину и ложь соответственно |
| 12 | char символьные данные (строки хранятся как вектор символов) |
| 13 | cell array массив проиндексированных ячеек, каждая из которых способна хранить массив другого измерения и типа данных |
| 14 | structure C-подобные структуры, каждая структура имеет именованные поля, способные хранить массив другого измерения и типа данных |
| 15 | function handle указатель на функцию |
| 16 | user classes объекты, созданные из пользовательского класса |
| 17 | java classes объекты, созданные из класса Java |
пример
Создайте файл сценария со следующим кодом -
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
Когда приведенный выше код компилируется и выполняется, он дает следующий результат:
str = Hello World!
n = 2345
d = 2345
un = 790
rn = 5678.9
c = 5679
Преобразование типов данных
MATLAB предоставляет различные функции для преобразования значения из одного типа данных в другой. В следующей таблице показаны функции преобразования типов данных -
| Функция | Цель |
|---|---|
| char | Преобразовать в символьный массив (строку) |
| int2str | Преобразование целочисленных данных в строку |
| mat2str | Преобразовать матрицу в строку |
| num2str | Преобразовать число в строку |
| str2double | Преобразовать строку в значение с двойной точностью |
| str2num | Преобразовать строку в число |
| native2unicode | Преобразование числовых байтов в символы Юникода |
| unicode2native | Преобразование символов Юникода в числовые байты |
| base2dec | Преобразование числовой строки с основанием N в десятичное число |
| bin2dec | Преобразование строки двоичного числа в десятичное число |
| dec2base | Преобразование десятичного числа в число с основанием N в строке |
| dec2bin | Преобразование десятичного числа в двоичное в строке |
| dec2hex | Преобразование десятичного числа в шестнадцатеричное в строке |
| hex2dec | Преобразование строки шестнадцатеричного числа в десятичное число |
| hex2num | Преобразование строки шестнадцатеричного числа в число двойной точности |
| num2hex | Преобразование одиночных и двойных чисел в шестнадцатеричные строки IEEE |
| cell2mat | Преобразование массива ячеек в числовой массив |
| cell2struct | Преобразование массива ячеек в массив структур |
| Cellstr | Создать массив ячеек строк из массива символов |
| mat2cell | Преобразование массива в массив ячеек с ячейками потенциально разного размера |
| num2cell | Преобразование массива в массив ячеек с ячейками постоянного размера |
| struct2cell | Преобразовать структуру в массив ячеек |
Определение типов данных
MATLAB предоставляет различные функции для идентификации типа данных переменной.
В следующей таблице представлены функции для определения типа данных переменной.
| Функция | Цель |
|---|---|
| является | Обнаружить состояние |
| это | Определите, является ли ввод объектом указанного класса |
| iscell | Определите, является ли ввод массивом ячеек |
| iscellstr | Определите, является ли ввод массивом ячеек строк |
| Ischar | Определите, является ли элемент массивом символов |
| Isfield | Определите, является ли ввод полем массива структуры |
| Isfloat | Определите, является ли ввод массивом с плавающей запятой |
| ishghandle | Истина для дескрипторов объектов графики |
| целое число | Определите, является ли ввод целочисленным массивом |
| Isjava | Определите, является ли ввод объектом Java |
| логичен | Определите, является ли ввод логическим массивом |
| нечисловой | Определите, является ли ввод числовым массивом |
| изобъект | Определите, является ли ввод объектом MATLAB |
| это реально | Проверьте, является ли ввод реальным массивом |
| Искаляр | Определите, является ли ввод скалярным |
| isstr | Определите, является ли ввод массивом символов |
| строить | Определите, является ли ввод структурным массивом |
| isvector | Определите, является ли ввод векторным |
| класс | Определить класс объекта |
| проверить атрибуты | Проверить валидность массива |
| кто | Список переменных в рабочей области с размерами и типами |
пример
Создайте файл сценария со следующим кодом -
x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
Когда вы запускаете файл, он дает следующий результат -
x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.540
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =
1 2 3
ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0