English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
MATLAB proporciona las siguientes funciones para convertir a varios tipos de datos numéricos-
función | función |
---|---|
double | convertir a número de precisión doble |
single | convertir a número de precisión simple |
int8 | convertir a8enteros con signo |
int16 | convertir a16enteros con signo |
int32 | convertir a32enteros con signo |
int64 | convertir a64enteros con signo |
uint8 | convertir a8enteros sin signo |
uint16 | convertir a16enteros sin signo |
uint32 | convertir a32enteros sin signo |
uint64 | convertir a64enteros sin signo |
创建一个脚本文件并输入以下代码-
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
让我们再扩展一下前面的示例。创建一个脚本文件并输入以下代码-
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 }
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.
以下示例说明了如何获取整数的最小和最大值。创建一个脚本文件并在其中写入以下代码-
%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
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.
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