HOWTO · MATLAB
Como verificar o tipo de uma variável no MATLAB
Veja como consultar a classe de um valor no MATLAB, inspecionar variáveis do workspace e testar condições de tipo.
Nesta página
Para verificar um valor no MATLAB, use class() para obter o nome de sua classe, whos para inspecionar as variáveis do workspace atual e predicados como isa(), ischar() ou isnumeric() para obter um resultado lógico. Escolha o método conforme precise identificar um valor, revisar as variáveis do workspace ou controlar um desvio no código.
Verificar o tipo de uma variável com class() no MATLAB
A função class() retorna um vetor de caracteres com o nome da classe de um valor. Por exemplo, o MATLAB trata o literal numérico 42 como double e o texto entre aspas simples 'Hello, MATLAB!' como um array de caracteres da classe char. Este script compatível com Octave demonstra a inspeção e os predicados em um único fluxo.
numericVar = 42;
charVar = 'Hello, MATLAB!';
fprintf('numericVar class: %s\n', class(numericVar));
fprintf('charVar class: %s\n', class(charVar));
fprintf('numericVar is double: %d\n', isa(numericVar, 'double'));
fprintf('charVar is a character array: %d\n', ischar(charVar));
fprintf('numericVar is numeric: %d\n', isnumeric(numericVar));
if isa(numericVar, 'double')
fprintf('Process numericVar as a double.\n');
end
numericVar class: double
charVar class: char
numericVar is double: 1
charVar is a character array: 1
numericVar is numeric: 1
Process numericVar as a double.
No MATLAB, use class(valor) quando precisar do nome exato da classe. A chamada informa a classe de um único valor; ela não lista o conteúdo do workspace.
Inspecionar os tipos das variáveis com o comando whos no MATLAB
O comando whos resume as variáveis do workspace atual, incluindo nomes, dimensões, quantidade de bytes, classes e atributos. Digite whos para ver a lista do workspace ou use whos numericVar para inspecionar uma variável específica. A coluna de classe facilita a revisão de vários valores em conjunto. A listagem se limita às variáveis visíveis no workspace ou escopo atual; por isso, não inspeciona uma expressão arbitrária que ainda não tenha sido atribuída a uma variável. Para consultar a classe de uma expressão isolada, use class(expressão).
Testar um tipo específico com isa() no MATLAB
Use isa(valor, 'nomeDoTipo') quando o código precisar saber se um valor pertence a uma classe solicitada. Com numericVar = 42 e charVar = 'Hello, MATLAB!', isa(numericVar, 'double') e isa(charVar, 'char') retornam valores lógicos verdadeiros, enquanto isa(numericVar, 'single') retorna falso. O resultado pode controlar diretamente uma instrução if, como no script acima. isa() também reconhece relações entre classes do MATLAB; portanto, pode retornar verdadeiro para uma superclasse ou interface mesmo quando esse nome não corresponde à classe exata do valor. Para obter o nome da classe, use class(valor).
Verificar arrays de caracteres com ischar() no MATLAB
A função ischar() retorna um valor lógico que indica se a entrada é um array de caracteres. Para charVar = 'Hello, MATLAB!', ischar(charVar) retorna verdadeiro; ischar(42) retorna falso. Use if ischar(valor) para selecionar o tratamento de texto quando uma função exigir uma entrada do tipo array de caracteres. Arrays de strings do MATLAB, escritos com aspas duplas, são de outro tipo e não passam nesse teste. Essa distinção é útil quando um programa aceita tanto vetores de caracteres quanto valores string.
Verificar valores numéricos com isnumeric() no MATLAB
Use isnumeric(valor) para testar se um valor tem um tipo numérico. Nos exemplos acima, isnumeric(numericVar) retorna verdadeiro e isnumeric(charVar) retorna falso. O predicado inclui classes numéricas do MATLAB como double, single e as classes inteiras; isso não significa que todo valor aceito seja especificamente double. Valores lógicos não são considerados numéricos por esse predicado. Quando uma classe específica for necessária, teste-a com isa(valor, 'double') ou consulte o nome exato com class(valor).
Conclusão
Use class() para obter o nome da classe de um valor, whos para revisar as variáveis do workspace atual e isa(), ischar() ou isnumeric() para obter uma condição lógica no código. Essas ferramentas respondem a perguntas diferentes: class() e whos servem para inspecionar; escolha o predicado que corresponda ao requisito que o programa precisa aplicar.