MATLAB - Cordas
Criar uma string de caracteres é bastante simples no MATLAB. Na verdade, nós o usamos muitas vezes. Por exemplo, você digita o seguinte no prompt de comando -
Demonstração ao vivo
my_string = 'Tutorials Point'
O MATLAB executará a instrução acima e retornará o seguinte resultado -
my_string = Tutorials Point
MATLAB considera todas as variáveis como arrays, e strings são consideradas como arrays de caracteres. Vamos usar o whos comando para verificar a variável criada acima -
whos
O MATLAB executará a instrução acima e retornará o seguinte resultado -
Name Size Bytes Class Attributes my_string 1x16 32 char
Curiosamente, você pode usar funções de conversão numérica como uint8 ou uint16 para converter os caracteres da string em seus códigos numéricos. O caracter função converte o vetor inteiro de volta para caracteres -
Exemplo
Crie um arquivo de script e digite o seguinte código nele -
Demonstração ao vivo
my_string = 'Tutorial''s Point'; str_ascii = uint8(my_string) % 8-bit ascii values str_back_to_char= char(str_ascii) str_16bit = uint16(my_string) % 16-bit ascii values str_back_to_char = char(str_16bit)
Quando você executa o arquivo, ele exibe o seguinte resultado -
str_ascii = 84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116 str_back_to_char = Tutorial's Point str_16bit = 84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116 str_back_to_char = Tutorial's Point
Matriz de caracteres retangulares
As strings que discutimos até agora são arrays de caracteres unidimensionais; no entanto, precisamos armazenar mais do que isso. Precisamos armazenar mais dados textuais dimensionais em nosso programa. Isso é conseguido criando matrizes de caracteres retangulares.
A maneira mais simples de criar uma matriz de caracteres retangular é concatenar duas ou mais matrizes de caracteres unidimensionais, vertical ou horizontalmente, conforme necessário.
Você pode combinar strings verticalmente de uma das seguintes maneiras -
-
Usando o operador de concatenação do MATLAB [] e separando cada linha com um ponto e vírgula (;). Observe que neste método cada linha deve conter o mesmo número de caracteres. Para strings com comprimentos diferentes, você deve preencher com caracteres de espaço conforme necessário.
-
Usando o caracter função. Se as strings tiverem comprimentos diferentes, char preenche as strings mais curtas com espaços em branco à direita para que cada linha tenha o mesmo número de caracteres.
Exemplo
Crie um arquivo de script e digite o seguinte código nele -
Demonstração ao vivo
doc_profile = ['Zara Ali '; ...
'Sr. Surgeon '; ...
'R N Tagore Cardiology Research Center']
doc_profile = char('Zara Ali', 'Sr. Surgeon', ...
'RN Tagore Cardiology Research Center')
Quando você executa o arquivo, ele exibe o seguinte resultado -
doc_profile = Zara Ali Sr. Surgeon R N Tagore Cardiology Research Center doc_profile = Zara Ali Sr. Surgeon RN Tagore Cardiology Research Center
Você pode combinar strings horizontalmente de uma das seguintes maneiras -
-
Usando o operador de concatenação do MATLAB, [] e separando as strings de entrada com uma vírgula ou um espaço. Este método preserva quaisquer espaços à direita nas matrizes de entrada.
-
Usando a função de concatenação de strings, strcat . Este método remove espaços à direita nas entradas.
Exemplo
Crie um arquivo de script e digite o seguinte código nele -
Demonstração ao vivo
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; profile = [name ', ' position ', ' worksAt] profile = strcat(name, ', ', position, ', ', worksAt)
Quando você executa o arquivo, ele exibe o seguinte resultado -
profile = Zara Ali , Sr. Surgeon , R N Tagore Cardiology Research Center profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center
Combinando Strings em uma Matriz de Células
A partir de nossa discussão anterior, fica claro que combinar strings com comprimentos diferentes pode ser uma dor, pois todas as strings na matriz devem ter o mesmo comprimento. Usamos espaços em branco no final das strings para equalizar seu comprimento.
No entanto, uma maneira mais eficiente de combinar as strings é converter a matriz resultante em uma matriz de células.
A matriz de células MATLAB pode conter diferentes tamanhos e tipos de dados em uma matriz. As matrizes de células fornecem uma maneira mais flexível de armazenar strings de comprimento variável.
O cellstr A função converte um array de caracteres em um array de células de strings.
Exemplo
Crie um arquivo de script e digite o seguinte código nele -
Demonstração ao vivo
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; profile = char(name, position, worksAt); profile = cellstr(profile); disp(profile)
Quando você executa o arquivo, ele exibe o seguinte resultado -
{
[1,1] = Zara Ali
[2,1] = Sr. Surgeon
[3,1] = R N Tagore Cardiology Research Center
}
Funções de string no MATLAB
O MATLAB fornece inúmeras funções de string criando, combinando, analisando, comparando e manipulando strings.
A tabela a seguir fornece uma breve descrição das funções de string no MATLAB -
| Função | Propósito |
|---|---|
| Funções para armazenar texto em matrizes de caracteres, combinar matrizes de caracteres etc. | |
| espaços | Cria uma sequência de caracteres em branco |
| cellstr | Criar array de células de strings do array de caracteres |
| caractere | Converter para matriz de caracteres (string) |
| iscellstr | Determinar se a entrada é uma matriz de células de strings |
| ischar | Determinar se o item é uma matriz de caracteres |
| sprintf | Formatar dados em string |
| strcat | Concatenar strings horizontalmente |
| strjoin | Juntar strings na matriz de células em uma única string |
| Funções para identificar partes de strings, localizar e substituir substrings | |
| ischar | Determinar se o item é uma matriz de caracteres |
| carta | Elementos de matriz que são letras alfabéticas |
| isspace | Elementos de matriz que são caracteres de espaço |
| isstrprop | Determinar se a string é da categoria especificada |
| sscanf | Ler dados formatados da string |
| strfind | Encontre uma string dentro de outra |
| strrep | Localizar e substituir substring |
| strsplit | Sequência dividida no delimitador especificado |
| strtok | Partes selecionadas da string |
| validatestring | Verificar a validade da string de texto |
| symvar | Determinar variáveis simbólicas na expressão |
| regexp | Corresponder à expressão regular (diferencia maiúsculas de minúsculas) |
| regexpi | Corresponder à expressão regular (não diferencia maiúsculas de minúsculas) |
| regexprep | Substituir string usando expressão regular |
| regexptranslate | Traduzir string em expressão regular |
| Funções para comparação de strings | |
| strcmp | Compare strings (diferencia maiúsculas de minúsculas) |
| strcmpi | Comparar strings (não diferencia maiúsculas de minúsculas) |
| strncmp | Compare os primeiros n caracteres de strings (diferencia maiúsculas de minúsculas) |
| strncmpi | Compare os primeiros n caracteres de strings (não diferencia maiúsculas de minúsculas) |
| Funções para alterar string para maiúsculas ou minúsculas, criar ou remover espaços em branco | |
| deblank | Retirar espaços em branco no final da string |
| strtrim | Remover espaço em branco à esquerda e à direita da string |
| inferior | Converter string para minúscula |
| superior | Converter string para maiúscula |
| strjust | Justificar matriz de caracteres |
Exemplos
Os exemplos a seguir ilustram algumas das funções de string mencionadas acima -
Formatando strings
Crie um arquivo de script e digite o seguinte código nele -
Demonstração ao vivo
A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
Quando você executa o arquivo, ele exibe o seguinte resultado -
ans = 3141.592654
3141.59
+3141.59
3141.59
000003141.59
Juntar strings
Crie um arquivo de script e digite o seguinte código nele -
Demonstração ao vivo
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};
% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")
Quando você executa o arquivo, ele exibe o seguinte resultado -
str1 = red-blue-green-yellow-orange str2 = red,blue,green,yellow,orange
Encontrando e substituindo strings
Crie um arquivo de script e digite o seguinte código nele -
Demonstração ao vivo
students = {'Zara Ali', 'Neha Bhatnagar', ...
'Monica Malik', 'Madhu Gautam', ...
'Madhu Sharma', 'Bhawna Sharma',...
'Nuha Ali', 'Reva Dutta', ...
'Sunaina Ali', 'Sofia Kabir'};
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)
Quando você executa o arquivo, ele exibe o seguinte resultado -
new_student =
{
[1,1] = Poulomi Dutta
}
first_names =
{
[1,1] = Zara
[1,2] = Neha
[1,3] = Monica
[1,4] = Madhu
[1,5] = Madhu
[1,6] = Bhawna
[1,7] = Nuha
[1,8] = Reva
[1,9] = Sunaina
[1,10] = Sofia
}
Comparando Strings
Crie um arquivo de script e digite o seguinte código nele -
Demonstração ao vivo
str1 = 'This is test'
str2 = 'This is text'
if (strcmp(str1, str2))
sprintf('%s and %s are equal', str1, str2)
else
sprintf('%s and %s are not equal', str1, str2)
end
Quando você executa o arquivo, ele exibe o seguinte resultado -
str1 = This is test str2 = This is text ans = This is test and This is text are not equal
MATLAB