MATLAB - Tipos de Dados
O MATLAB não requer nenhuma declaração de tipo ou declarações de dimensão. Sempre que o MATLAB encontra um novo nome de variável, ele cria a variável e aloca o espaço de memória apropriado.
Se a variável já existe, o MATLAB substitui o conteúdo original por um novo conteúdo e aloca novo espaço de armazenamento, quando necessário.
Por exemplo,
Total = 42
A declaração acima cria uma matriz 1 por 1 chamada 'Total' e armazena o valor 42 nela.
Tipos de dados disponíveis no MATLAB
O MATLAB fornece 15 tipos de dados fundamentais. Cada tipo de dados armazena dados que estão na forma de uma matriz ou array. O tamanho desta matriz ou array é no mínimo 0 por 0 e isso pode crescer até uma matriz ou array de qualquer tamanho.
A tabela a seguir mostra os tipos de dados mais comumente usados no MATLAB -
Sr. Não. | Tipo de dados e descrição |
---|---|
1 | int8 Inteiro assinado de 8 bits |
2 | uint8 Inteiro sem sinal de 8 bits |
3 | int16 Inteiro assinado de 16 bits |
4 | uint16 Inteiro não assinado de 16 bits |
5 | int32 Inteiro assinado de 32 bits |
6 | uint32 Inteiro sem sinal de 32 bits |
7 | int64 Inteiro assinado de 64 bits |
8 | uint64 Inteiro não assinado de 64 bits |
9 | single dados numéricos de precisão única |
10 | double dados numéricos de dupla precisão |
11 | logical valores lógicos de 1 ou 0 representam verdadeiro e falso, respectivamente |
12 | char dados de caracteres (strings são armazenadas como vetores de caracteres) |
13 | cell array matriz de células indexadas, cada uma capaz de armazenar uma matriz de dimensão e tipo de dados diferentes |
14 | structure Estruturas semelhantes a C, cada estrutura tendo campos nomeados capazes de armazenar uma matriz de uma dimensão e tipo de dados diferente |
15 | function handle ponteiro para uma função |
16 | user classes objetos construídos a partir de uma classe definida pelo usuário |
17 | java classes objetos construídos a partir de uma classe Java |
Exemplo
Crie um arquivo de script com o seguinte código -
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
str = Hello World!
n = 2345
d = 2345
un = 790
rn = 5678.9
c = 5679
Conversão de Tipo de Dados
O MATLAB fornece várias funções para conversão de um valor de um tipo de dados para outro. A tabela a seguir mostra as funções de conversão de tipo de dados -
Função | Objetivo |
---|---|
Caracteres | Converter para matriz de caracteres (string) |
int2str | Converter dados inteiros em string |
mat2str | Converter matriz em string |
num2str | Converter número em string |
str2double | Converter string em valor de precisão dupla |
str2num | Converter string em número |
native2unicode | Converta bytes numéricos em caracteres Unicode |
unicode2native | Converter caracteres Unicode em bytes numéricos |
base2dec | Converta a sequência de números de base N em número decimal |
bin2dec | Converter string de número binário em número decimal |
dec2base | Converter decimal em número de base N na string |
dec2bin | Converter decimal em número binário na string |
dec2hex | Converter decimal em número hexadecimal na string |
hex2dec | Converter string de número hexadecimal em número decimal |
hex2num | Converter string de número hexadecimal em número de precisão dupla |
num2hex | Converta singles e duplos em strings hexadecimais IEEE |
cell2mat | Converter matriz de células em matriz numérica |
cell2struct | Converter matriz de células em matriz de estrutura |
cellstr | Crie uma matriz de células de strings a partir de uma matriz de caracteres |
mat2cell | Converter array em array de células com células de tamanhos potencialmente diferentes |
num2cell | Converta matriz em matriz de células com células de tamanho consistente |
struct2cell | Converter estrutura em matriz de células |
Determinação de tipos de dados
O MATLAB fornece várias funções para identificar o tipo de dados de uma variável.
A tabela a seguir fornece as funções para determinar o tipo de dados de uma variável -
Função | Objetivo |
---|---|
é | Detectar estado |
é um | Determine se a entrada é um objeto da classe especificada |
iscell | Determine se a entrada é uma matriz de células |
iscellstr | Determine se a entrada é uma matriz de células de strings |
ischar | Determine se o item é uma matriz de caracteres |
Isfield | Determine se a entrada é um campo de matriz de estrutura |
flutuar | Determine se a entrada é uma matriz de ponto flutuante |
ishghandle | True para manipuladores de objeto de Handle Graphics |
isinteger | Determine se a entrada é uma matriz de inteiros |
isjava | Determine se a entrada é um objeto Java |
islógico | Determine se a entrada é uma matriz lógica |
isnumeric | Determine se a entrada é uma matriz numérica |
isobjeto | Determine se a entrada é um objeto MATLAB |
é real | Verifique se a entrada é uma matriz real |
isscalar | Determine se a entrada é escalar |
isstr | Determine se a entrada é uma matriz de caracteres |
isstruct | Determine se a entrada é um array de estrutura |
isvetor | Determine se a entrada é um vetor |
classe | Determine a classe do objeto |
atributos válidos | Verifique a validade da matriz |
quem é | Listar variáveis no espaço de trabalho, com tamanhos e tipos |
Exemplo
Crie um arquivo de script com o seguinte código -
x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
Quando você executa o arquivo, ele produz o seguinte resultado -
x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.540
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =
1 2 3
ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0