English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Числа MATLAB

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

Вы можете выбрать, чтобы любое число или массив чисел хранилось как целое число или одинарная точная цифра.

Все числовые типы поддерживают основные операции массивов и математические операции.

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

MATLAB предоставляет следующие функции для преобразования в различные числовые типы данных -

ФункциональностьФункция
doubleПреобразование в двойную точную цифру
singleПреобразование в одинарную точную цифру
int8Преобразование в 8-битное знаковое целое число
int16Преобразование в 16-битное знаковое целое число
int32Преобразование в 32-битное знаковое целое число
int64Преобразование в 64-битное знаковое целое число
uint8Преобразование в 8-битное беззнаковое целое число
uint16转换为16位无符号整数
uint32转换为32位无符号整数
uint64转换为64位无符号整数

Пример

创建一个脚本文件并输入以下代码-

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
x =
   39.900 26.025 47.100
x =
   38 23 45
x =
   38 23 45
x =
   38 23 45
x =
   38 23 45

Пример

让我们再扩展一下前面的示例。创建一个脚本文件并输入以下代码-

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)或intmin(int64),并返回可以用整数数据类型表示的最大值和最小值。

Пример

以下示例说明了如何获取整数的最小和最大值。创建一个脚本文件并在其中写入以下代码-

%显示最小和最大有符号整数数据
str = 'The range for int8 is:\n\t%d to %d';
sprintf(str, intmin('int8'), intmax('int8'))
str = 'The range for int16 is:\n\t%d to %d';
sprintf(str, intmin('int16'), intmax('int16'))
str = 'The range for int32 is:\n\t%d to %d';
sprintf(str, intmin('int32'), intmax('int32'))
str = 'The range for int64 is:\n\t%d to %d';
sprintf(str, intmin('int64'), intmax('int64'))
 
%Отображение минимальных и максимальных unsigned integer данных
str = 'Предел uint8 составляет:\n\t%d до %d ';
sprintf(str, intmin('uint8'), intmax('uint8'))
str = 'Предел uint16 составляет:\n\t%d до %d ';
sprintf(str, intmin('uint16'), intmax('uint16'))
str = 'Предел uint32 составляет:\n\t%d до %d ';
sprintf(str, intmin('uint32'), intmax('uint32'))
str = 'Предел uint64 составляет:\n\t%d до %d ';
sprintf(str, intmin('uint64'), intmax('uint64'))

При запуске файла он показывает следующий результат-

ans = Предел int8 составляет:
	-128 до 127 
ans = Предел int16 составляет:
	-32768 до 32767 
ans = Предел int32 составляет:
	-2147483648 до 2147483647 
ans = Предел int64 составляет:
	0 до 0 
ans = Предел uint8 составляет:
	0 до 255 
ans = Предел uint16 составляет:
	0 до 65535 
ans = Предел uint32 составляет:
	0 до -1 
ans = Предел uint64 составляет:
	0 до 18446744073709551616

Минимальные и максимальные значения浮-pointных чисел

функцииrealmax()иrealmin()Возвращает максимальное и минимальное значения, которые можно представить с помощью浮-pointных чисел.

При вызове функций с параметром «single» обе функции возвращают максимальное и минимальное значения, которые можно представить с помощью типа данных с плавающей запятой; при вызове с параметром «double» обе функции возвращают максимальное и минимальное значения, которые можно представить с помощью типа данных с двойной точностью.

Пример

Пример показывает, как получить минимальное и максимальное浮点ное значение. Создайте файл скрипта и напишите в нем следующий код-

%Показать минимальное и максимальное одинарное значение
%Фloating-point numbers
str = 'Диапазон для single:\n\t%g до %g и\n\t%g до %g';
sprintf(str, -realmax('single'), -realmin('single'), ...
   realmin('single'), realmax('single'))
%Показать минимальное и максимальное двойное значение
%Фloating-point numbers
str = 'Диапазон для double:\n\t%g до %g и\n\t%g до %g';
sprintf(str, -realmax('double'), -realmin('double'), ...
   realmin('double'), realmax('double'))

При запуске файла он показывает следующий результат-

ans = Диапазон для single:                                                  
        -3.40282e+38 до -1.17549e-38 и                                        
         1.17549e-38 до 3.40282e+38                                            
ans = Диапазон для double:                                                  
        -1.79769e+308 до -2.22507e-308 и                                      
         2.22507e-308 до 1.79769e+308