Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> MATLAB

Числа в MATLAB: типы, хранение и преобразование

MATLAB поддерживает различные числовые классы: знаковые и беззнаковые целые числа, числа одинарной и двойной точности с плавающей точкой. По умолчанию все числовые значения хранятся как двойной точности (double).

Вы можете хранить числа или массивы как целые или одинарной точности (single). Все числовые типы поддерживают базовые операции с массивами и математические операции.

Преобразование к различным числовым типам

MATLAB предоставляет функции для преобразования:

ФункцияНазначение
doubleПреобразование к двойной точности
singleПреобразование к одинарной точности
int88-битное знаковое целое
int1616-битное знаковое целое
int3232-битное знаковое целое
int6464-битное знаковое целое
uint88-битное беззнаковое целое
uint1616-битное беззнаковое целое
uint3232-битное беззнаковое целое
uint6464-битное беззнаковое целое

Пример

x = single([5.32 3.47 6.28]) .* 7.5
x = double([5.32 3.47 6.28]) .* 7.5
x = int8([5.32 3.47 6.28]) .* 7.5
x = int16([5.32 3.47 6.28]) .* 7.5
x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5

Результат:

x = 39.900  26.025  47.100   (single)
x = 39.900  26.025  47.100   (double)
x = 38  23  45               (int8, int16, int32, int64 — округление)

Обратите внимание: целочисленные типы округляют результат.

Дополнительный пример

x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5
x = num2cell(x)

Результат:

x = 38  23  45
x = 38  23  45
x = { [1,1] = 38; [1,2] = 23; [1,3] = 45 }

Минимальные и максимальные целые значения

Функции intmax() и intmin() возвращают максимальное и минимальное значения для целочисленных типов. Аргумент — тип данных (например, intmax('int8')).

Пример

% Знаковые целые
sprintf('int8:  %d to %d', intmin('int8'), intmax('int8'))
sprintf('int16: %d to %d', intmin('int16'), intmax('int16'))
sprintf('int32: %d to %d', intmin('int32'), intmax('int32'))
sprintf('int64: %d to %d', intmin('int64'), intmax('int64'))
% Беззнаковые целые
sprintf('uint8:  %d to %d', intmin('uint8'), intmax('uint8'))
sprintf('uint16: %d to %d', intmin('uint16'), intmax('uint16'))
sprintf('uint32: %d to %d', intmin('uint32'), intmax('uint32'))
sprintf('uint64: %d to %d', intmin('uint64'), intmax('uint64'))

Результат:

int8:  -128 to 127
int16: -32768 to 32767
int32: -2147483648 to 2147483647
int64: -9223372036854775808 to 9223372036854775807
uint8: 0 to 255
uint16: 0 to 65535
uint32: 0 to 4294967295
uint64: 0 to 18446744073709551615

Минимальные и максимальные значения с плавающей точкой

Функции realmax() и realmin() возвращают пределы для чисел с плавающей точкой. Аргумент 'single' или 'double' задает точность.

Пример

% single
sprintf('single: %g to %g and %g to %g', -realmax('single'), -realmin('single'), realmin('single'), realmax('single'))
% double
sprintf('double: %g to %g and %g to %g', -realmax('double'), -realmin('double'), realmin('double'), realmax('double'))

Результат:

single: -3.40282e+38 to -1.17549e-38 and 1.17549e-38 to 3.40282e+38
double: -1.79769e+308 to -2.22507e-308 and 2.22507e-308 to 1.79769e+308

MATLAB

  1. Числа и системы счисления: понимание различия и его практическое значение
  2. MATLAB: Комплексный обзор ведущей среды численных вычислений
  3. Переменные в MATLAB: Основы, примеры и работа с векторами/матрицами
  4. Основные команды MATLAB для эффективных вычислений
  5. Типы данных в MATLAB: Полное руководство с примерами
  6. Операторы MATLAB: Арифметические, логические, битовые и операции над множествами
  7. Матрицы в MATLAB: Создание, индексация, удаление строк/столбцов и операции
  8. MATLAB: Мастерство работы с многомерными и специальными массивами
  9. Оператор двоеточия в MATLAB: создание векторов и эффективная итерация
  10. Строки в MATLAB: создание, манипуляции и функции