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

Números de MATLAB

MATLAB admite varios tipos de clases numéricas, incluyendo enteros con y sin signo, así como números de coma flotante de precisión simple y doble. Por defecto, MATLAB almacena todos los valores numéricos como números de coma flotante de precisión doble.

Puede elegir almacenar cualquier número o matriz de números como entero o número de precisión simple.

Todos los tipos de datos numéricos admiten operaciones de arrays básicas y operaciones matemáticas.

Convertir a varios tipos de datos numéricos

MATLAB proporciona las siguientes funciones para convertir a varios tipos de datos numéricos-

funciónfunción
doubleconvertir a número de precisión doble
singleconvertir a número de precisión simple
int8convertir a8enteros con signo
int16convertir a16enteros con signo
int32convertir a32enteros con signo
int64convertir a64enteros con signo
uint8convertir a8enteros sin signo
uint16convertir a16enteros sin signo
uint32convertir a32enteros sin signo
uint64convertir a64enteros sin signo

Ejemplo

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

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

Al ejecutar el archivo, muestra el siguiente resultado-

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

Ejemplo

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

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

Al ejecutar el archivo, muestra el siguiente resultado-

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

enteros más pequeños y más grandes

funciónintmax()yintmin()Devuelve el valor máximo y mínimo que se puede representar con todos los tipos de datos enteros.

Estas dos funciones toman como parámetro el tipo de datos entero, por ejemplo intmax(int8),o intmin(int64),y devuelve los valores máximos y mínimos que se pueden representar con el tipo de datos entero.

Ejemplo

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

%Mostrar los enteros con signo más pequeños y más grandes
str = 'El rango para int8 es:\n\t%d a %d ';
sprintf(str, intmin('int8'), intmax('int8'))
str = 'El rango para int16 es:\n\t%d a %d ';
sprintf(str, intmin('int16'), intmax('int16'))
str = 'El rango para int32 es:\n\t%d a %d ';
sprintf(str, intmin('int32'), intmax('int32'))
str = 'El rango para int64 es:\n\t%d a %d ';
sprintf(str, intmin('int64'), intmax('int64'))
 
%Mostrar los enteros sin signo más pequeños y más grandes
str = 'El rango para uint8 es:\n\t%d a %d ';
sprintf(str, intmin('uint8'), intmax('uint8'))
str = 'El rango para uint16 es:\n\t%d a %d ';
sprintf(str, intmin('uint16'), intmax('uint16'))
str = 'El rango para uint32 es:\n\t%d a %d ';
sprintf(str, intmin('uint32'), intmax('uint32'))
str = 'El rango para uint64 es:\n\t%d a %d ';
sprintf(str, intmin('uint64'), intmax('uint64'))

Al ejecutar el archivo, muestra el siguiente resultado-

ans = El rango para int8 es:
	-128 a 127 
ans = El rango para int16 es:
	-32768 a 32767 
ans = El rango para int32 es:
	-2147483648 a 2147483647 
ans = El rango para int64 es:
	0 a 0 
ans = El rango para uint8 es:
	0 a 255 
ans = El rango para uint16 es:
	0 a 65535 
ans = El rango para uint32 es:
	0 a -1 
ans = El rango para uint64 es:
	0 a 18446744073709551616

números de coma flotante mínimos y máximos

funciónrealmax()yrealmin()Devuelve el valor máximo y mínimo que se puede representar con un número de coma flotante.

Cuando se invocan dos funciones con el parámetro 'single', ambas funciones retornan los valores máximos y mínimos que se pueden representar con el tipo de datos de precisión simple; cuando se invocan con el parámetro 'double', ambas funciones retornan los valores máximos y mínimos que se pueden representar con el tipo de datos de precisión doble. Tipo de datos de precisión doble.

Ejemplo

Los siguientes ejemplos ilustran cómo obtener el valor mínimo y máximo de los números de coma flotante. Crea un archivo de script y escribe el siguiente código-

%Mostrar el valor mínimo y máximo de precisión simple
%Números de coma flotante
str = 'El rango para single es:\n\t%g a %g y\n\t%g a %g';
sprintf(str, -realmax('single'), -realmin('single'), ...
   realmin('single'), realmax('single'))
%Mostrar el valor mínimo y máximo de precisión doble
%Números de coma flotante
str = 'El rango para double es:\n\t%g a %g y\n\t%g a %g';
sprintf(str, -realmax('double'), -realmin('double'), ...
   realmin('double'), realmax('double'))

Al ejecutar el archivo, muestra el siguiente resultado-

ans = El rango para single es:                                                  
        -3.40282e+38 a -1.17549e-38 y                                        
         1.17549e-38 a  3.40282e+38                                            
ans = El rango para double es:                                                  
        -1.79769e+308 a -2.22507e-308 y                                      
         2.22507e-308 a  1.79769e+308