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

Números do MATLAB

O MATLAB suporta vários tipos de números, incluindo inteiros assinados e não assinados e números de precisão simples e dupla. Por padrão, o MATLAB armazena todos os números como números de precisão dupla.

Você pode escolher armazenar qualquer número ou array de números como inteiro ou número de precisão simples.

Todos os tipos de dados numéricos suportam operações básicas de array e operações matemáticas.

converter para vários tipos de dados numéricos

O MATLAB fornece as seguintes funções para converter para vários tipos de dados numéricos-

funçãofunção
doubleconverter para número de precisão dupla
singleconverter para número de precisão simples
int8converter para8bits de inteiro signed
int16converter para16bits de inteiro signed
int32converter para32bits de inteiro signed
int64converter para64bits de inteiro signed
uint8converter para8bits de inteiro unsigned
uint16converter para16bits de inteiro unsigned
uint32converter para32bits de inteiro unsigned
uint64converter para64bits de inteiro unsigned

Exemplo

Crie um arquivo de script e insira o seguinte código-

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

Quando o arquivo é executado, ele exibe o seguinte 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

Exemplo

Vamos expandir mais um pouco o exemplo anterior. Crie um arquivo de script e insira o seguinte código-

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

Quando o arquivo é executado, ele exibe o seguinte resultado-

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

o menor e o maior número inteiro

funçãointmax()eintmin()retorna o valor máximo e mínimo que podem ser representados por todos os tipos de dados inteiros.

Essas duas funções aceitam o tipo de dados inteiro como parâmetro, por exemplointmax(int8)ouintmin(int64),e retorna o valor máximo e mínimo que podem ser representados pelo tipo de dados inteiro.

Exemplo

Os seguintes exemplos ilustram como obter o menor e o maior valor inteiro. Crie um arquivo de script e escreva o seguinte código-

%Mostra o menor e o maior número inteiro signed
str = 'O intervalo para int8 é:\n\t%d to %d ';
sprintf(str, intmin('int8), intmax('int8))
str = 'O intervalo para int16 é:\n\t%d to %d ';
sprintf(str, intmin('int16), intmax('int16))
str = 'O intervalo para int32 é:\n\t%d to %d ';
sprintf(str, intmin('int32), intmax('int32))
str = 'O intervalo para int64 é:\n\t%d to %d ';
sprintf(str, intmin('int64), intmax('int64))
 
%Mostra o menor e o maior número inteiro unsigned
str = 'O intervalo para uint8 é:\n\t%d to %d ';
sprintf(str, intmin('uint8), intmax('uint8))
str = 'O intervalo para uint16 é:\n\t%d to %d ';
sprintf(str, intmin('uint16), intmax('uint16))
str = 'O intervalo para uint32 é:\n\t%d to %d ';
sprintf(str, intmin('uint32), intmax('uint32))
str = 'O intervalo para uint64 é:\n\t%d to %d ';
sprintf(str, intmin('uint64), intmax('uint64))

Quando o arquivo é executado, ele exibe o seguinte resultado-

ans = O intervalo para int8 é:
	-128 to 127 
ans = O intervalo para int16 é:
	-32768 to 32767 
ans = O intervalo para int32 é:
	-2147483648 to 2147483647 
ans = O intervalo para int64 é:
	0 to 0 
ans = O intervalo para uint8 é:
	0 to 255 
ans = O intervalo para uint16 é:
	0 to 65535 
ans = O intervalo para uint32 é:
	0 to -1 
ans = O intervalo para uint64 é:
	0 to 18446744073709551616

o menor e o maior número de ponto flutuante

funçãorealmax()erealmin()Retorna o valor máximo e mínimo que podem ser representados por números de ponto flutuante.

Quando os dois funções são chamadas com o parâmetro 'single', ambas retornam o maior e o menor valor que você pode representar com o tipo de dados de precisão simples; quando chamadas com o parâmetro 'double', ambas retornam o maior e o menor valor que você pode representar com o tipo de dados de precisão dupla. Tipo de dados de precisão dupla.

Exemplo

Os seguintes exemplos mostram como obter o menor e o maior número de ponto flutuante. Crie um arquivo de script e escreva o seguinte código nele-

%Exibe o menor e o maior single
%Números de ponto flutuante
str = 'O intervalo para single é:\n\t%g até %g e\n\t%g até %g';
sprintf(str, -realmax('single'), -realmin('single'), ...
   realmin('single'), realmax('single'))
%Exibe o menor e o maior double
%Números de ponto flutuante
str = 'O intervalo para double é:\n\t%g até %g e\n\t%g até %g';
sprintf(str, -realmax('double'), -realmin('double'), ...
   realmin('double'), realmax('double'))

Quando o arquivo é executado, ele exibe o seguinte resultado-

ans = O intervalo para single é:                                                  
        -3.40282e+38 to -1.17549e-38 and                                        
         1.17549e-38 to  3.40282e+38                                            
ans = O intervalo para double é:                                                  
        -1.79769e+308 to -2.22507e-308 and                                      
         2.22507e-308 to  1.79769e+308