Estruturas no Octave

Na lição de hoje, vamos desvendar o uso das estruturas no Octave, ilustrando isso com exemplos práticos.

Então, o que são essas tais estruturas? Bem, estruturas, ou vetores de estruturas, se assemelham bastante aos vetores. Porém, ao contrário de um vetor, uma estrutura tem a habilidade de armazenar dados de diferentes tipos ao mesmo tempo. Esses dados são organizados em campos, e cada campo tem um nome. Um bom exemplo para entender o conceito de estrutura é pensar numa agenda telefônica.

Como criar uma estrutura

Vamos criar uma estrutura para representar uma agenda telefônica.

Chame a estrutura de "agenda". O primeiro campo dessa estrutura será o "nome" da pessoa.

>> agenda.nome="Paul Red";

O segundo campo será o "telefone" da pessoa.

>> agenda(1).telefone=[123456789, 987654321]

Caso necessário, os dados de um campo podem ser um vetor.

>> agenda(1).telefone=[123456789, 987654321]

O terceiro campo da estrutura será o endereço da pessoa.

>> agenda.endereco="Roma";

Em vez disso, é possível criar a estrutura já preenchendo todos os campos de uma só vez, utilizando a função struct().

>> agenda = struct('nome','Paul Red','telefone',123456789, 'endereco', 'Roma')

Pronto! Acabamos de criar uma estrutura (diretório) com um único registro, composto por três campos: nome, telefone e endereço.

Observação: Perceba que os campos possuem diferentes tipos de dados. Temos dois campos alfanuméricos (nome e endereço), enquanto um é numérico (telefone).

Se preferir, é possível criar uma estrutura com vários campos e preenchê-los com dados desde o início.

Nesse caso, é importante se lembrar de escrever os nomes dos campos apenas uma vez e colocar os dados de um campo entre chaves.

C = struct('aula',{'Matemática', 'Latim', 'Ciência'},'nota',{27,30,18})

Como exibir os campos de uma estrutura

Para visualizar a lista de campos na estrutura, podemos utilizar a função fieldnames().

>> fieldnames(agenda)
ans =
{
[1,1] = nome
[2,1] = telefone
[3,1] = endereco
}

Todos os registros na estrutura possuem o mesmo número e nomes de campos.

Neste caso, a estrutura tem três campos: nome, telefone e endereço.

Como adicionar dados a uma estrutura

Você pode incluir registros adicionais à estrutura.

Por exemplo, para inserir um segundo registro, use o nome da estrutura seguido do número do índice entre parênteses

>> agenda(2).nome="Mario White";
>> agenda(2).telefone=987654321;

Agora a nossa estrutura possui dois registros.

Ao adicionar um novo registro à estrutura, não é necessário preencher todos os campos. É possível deixar alguns deles vazios.

Por exemplo, no segundo registro da estrutura, você não preencheu nada no campo de endereço.

>> agenda(2)
ans =

scalar structure containing the fields:

nome = Mario White
telefone = 987654321
endereco = [](0x0)

Alternativamente, você pode adicionar um novo registro inserindo todosos campos de uma vez utilizando a função struct().

>> agenda(3) = struct('nome','Joseph Green','telefone',123456789, 'endereco', 'Milão')

Como acessar os dados de uma estrutura

Para acessar um dado dentro de uma estrutura, é necessário escrever o nome da estrutura seguido pelo índice (entre parênteses). Após isso, acrescente um ponto e o nome do campo que você deseja acessar.

Por exemplo, para acessar o número de telefone do primeiro registro na estrutura, digite agenda(1).telefone.

>> agenda(1).telefone
ans = 123456789

Para ler o número de telefone do segundo registro, digite agenda(2).telefone

>> agenda(2).telefone
ans = 987654321

Para visualizar todos os dados no campo telefone, digite agenda.telefone

>> agenda.telefone
ans = 123456789
ans = 987654321

Para exibir todos os dados de um registro específico, digite agenda(1)

>> agenda(1)
ans =

scalar structure containing the fields:

nome = Paul Red
telefone = 123456789 987654321
endereco = Roma

Como remover um campo de uma estrutura

Para remover um campo de uma estrutura, é necessário utilizar a função rmfield()

Por exemplo, se adicionarmos um campo à estrutura, ela passará a ter quatro campos.

>> agenda(2).teste="teste";

Agora, a estrutura possui quatro campos.

>> fieldnames(agenda)
ans =
{
[1,1] = nome
[2,1] = telefone
[3,1] = endereco
[4,1] = teste
}

Para remover o campo "teste", digite rmfield(agenda,"teste")

>> agenda=rmfield(agenda,"teste");

O campo "teste" foi então removido da estrutura.

>> fieldnames(agenda)
ans =
{
[1,1] = nome
[2,1] = telefone
[3,1] = endereco
}

Agora, você já tem em mãos todas as informações necessárias para começar a trabalhar com estruturas no Octave.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Estruturas em Octave