Diferenças entre edições de "Manipulação de vetores"

De GNU Octave
Ir para: navegação, pesquisa
Linha 1: Linha 1:
 
Existem muitas formas de manipular vetores no Octave.
 
Existem muitas formas de manipular vetores no Octave.
  
=== Constantes ===
+
=== Definição de um vetor ===
  
 
A forma mais simples de definir um vetor em Octave é listando os valores do mesmo entre '[' e ']'. Pode separar cada um dos elementos com vírgulas ou com espaços.
 
A forma mais simples de definir um vetor em Octave é listando os valores do mesmo entre '[' e ']'. Pode separar cada um dos elementos com vírgulas ou com espaços.
Linha 16: Linha 16:
 
===== Notação =====
 
===== Notação =====
  
O vetor anterior poderá ser apresentação numa notação ligeiramente diferente, em que todos os números são multiplicados por 10 (1.0e+01), da seguinte forma:
+
O vetor anterior poderá ser apresentado numa notação ligeiramente diferente, em que todos os números são multiplicados por 10 (1.0e+01), da seguinte forma:
  
 
<syntaxhighlight>
 
<syntaxhighlight>
Linha 35: Linha 35:
  
 
   82.400  82.700  82.500
 
   82.400  82.700  82.500
 +
</syntaxhighlight>
 +
 +
=== Definição de um vetor por compreensão ===
 +
 +
Pode-se definir um vetor sem ter que enumerar todos os seus elementos. Uma forma muito simpática de o fazer é através da indicação do  valor inicial, um incremento e o limite. O operador usa-se da seguinte forma:
 +
 +
''valor inicial: incremento: limite''
 +
 +
<syntaxhighlight>
 +
>> 1:1/3:3
 +
ans =
 +
    1.0000    1.3333    1.6667    2.0000    2.3333    2.6667    3.0000
 +
</syntaxhighlight>
 +
 +
Desta forma é muito fácil, por exemplo, calcular os valores da função y = 2 * x - 3 para os valores de 1 a 10.
 +
 +
<syntaxhighlight>
 +
>> x = 1:1:10
 +
x =
 +
    1    2    3    4    5    6    7    8    9  10
 +
>> y = 2*x-3
 +
y =
 +
  -1    1    3    5    7    9  11  13  15  17
 +
</syntaxhighlight>
 +
 +
Pode ser abreviado para ''valor inicial: limite'' assumindo-se que o incremento é 1. Pode-se fazer, por exemplo:
 +
 +
<syntaxhighlight>
 +
>> 15:20
 +
ans =
 +
 +
  15  16  17  18  19  20
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Linha 84: Linha 116:
  
 
   16  25  36  49  64
 
   16  25  36  49  64
</syntaxhighlight>
 
 
=== Descrição de um vetor por compreensão ===
 
 
Pode-se definir um vetor sem ter que enumerar todos os seus elementos. Uma forma muito simpática de o fazer é através da indicação do  valor inicial, um incremento e o limite. O operador usa-se da seguinte forma:
 
 
''valor inicial: incremento: limite''
 
 
<syntaxhighlight>
 
>> 1:1/3:3
 
ans =
 
    1.0000    1.3333    1.6667    2.0000    2.3333    2.6667    3.0000
 
</syntaxhighlight>
 
 
Desta forma é muito fácil, por exemplo, calcular os valores da função y = 2 * x - 3 para os valores de 1 a 10.
 
 
<syntaxhighlight>
 
>> x = 1:1:10
 
x =
 
    1    2    3    4    5    6    7    8    9  10
 
>> y = 2*x-3
 
y =
 
  -1    1    3    5    7    9  11  13  15  17
 
</syntaxhighlight>
 
 
Pode ser abreviado para ''valor inicial: limite'' assumindo-se que o incremento é 1. Pode-se fazer, por exemplo:
 
 
<syntaxhighlight>
 
>> 15:20
 
ans =
 
 
  15  16  17  18  19  20
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Linha 188: Linha 188:
  
 
=== Grandes vetores ===
 
=== Grandes vetores ===
No Octave pode-se guardar uma ou mais variáveis num arquivo para posterior utilização. No arquivo heartrate.m, disponível em http://octave.di.uminho.pt/images/files/ tem a definição de um vetor chamado bpm.
+
No Octave pode-se guardar uma ou mais variáveis num documento para posterior utilização. No documento <code>heartrate.m</code>, disponível em http://octave.di.uminho.pt/images/files/ tem a definição de um vetor chamado <code>bpm</code>.
Descarregue o arquivo, e depois leia o vetor bpm do arquivo heartrate.m, com o comando:
+
Descarregue o documento, e depois leia o vetor <code>bpm</code> do documento <code>heartrate.m</code>.
 +
 
 
<syntaxhighlight>
 
<syntaxhighlight>
 
>> load heartrate.m bpm
 
>> load heartrate.m bpm
Linha 202: Linha 203:
 
Neste vetor estão registados os batimentos cardíacos (batimentos por minuto) registados com intervalos de 5 segundos. O registo começou às 08:40:19 do dia 2012-10-03.
 
Neste vetor estão registados os batimentos cardíacos (batimentos por minuto) registados com intervalos de 5 segundos. O registo começou às 08:40:19 do dia 2012-10-03.
  
i) Diga quantos valores (comprimento) tem o vetor bpm.
+
i) Diga quantos valores tem o vetor <code>bpm</code>, ou seja, qual o comprimento ou dimensão do vetor <code>bpm</code>.
  
 
<syntaxhighlight>
 
<syntaxhighlight>
Linha 237: Linha 238:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
v) Mostre apenas os primeiros 5 elementos do vetor bpm
+
v) Mostre apenas os primeiros 5 elementos do vetor <code>bpm</code>.
  
 
<syntaxhighlight>
 
<syntaxhighlight>
 
bpm(1:5)
 
bpm(1:5)
 
</syntaxhighlight>
 
</syntaxhighlight>

Revisão das 00h13min de 9 de outubro de 2013

Existem muitas formas de manipular vetores no Octave.

Definição de um vetor

A forma mais simples de definir um vetor em Octave é listando os valores do mesmo entre '[' e ']'. Pode separar cada um dos elementos com vírgulas ou com espaços.

>> vel = [ 50 50 70 90 120 ]
vel =
    50    50    70    90   120
>> peso = [ 82.4, 82.7, 82.5]
peso =
   82.400   82.700   82.500
Notação

O vetor anterior poderá ser apresentado numa notação ligeiramente diferente, em que todos os números são multiplicados por 10 (1.0e+01), da seguinte forma:

>> peso = [82.4, 82.7, 82.5]
peso =
 
  1.0e+01  *
 
  8.24000  8.27000  8.25000

Para usar a notação normal, usa-se a função fixed_point_format.

>> fixed_point_format(0)
>> peso
peso =
 
   82.400   82.700   82.500

Definição de um vetor por compreensão

Pode-se definir um vetor sem ter que enumerar todos os seus elementos. Uma forma muito simpática de o fazer é através da indicação do valor inicial, um incremento e o limite. O operador usa-se da seguinte forma:

valor inicial: incremento: limite

>> 1:1/3:3
ans =
    1.0000    1.3333    1.6667    2.0000    2.3333    2.6667    3.0000

Desta forma é muito fácil, por exemplo, calcular os valores da função y = 2 * x - 3 para os valores de 1 a 10.

>> x = 1:1:10
x =
    1    2    3    4    5    6    7    8    9   10
>> y = 2*x-3
y =
   -1    1    3    5    7    9   11   13   15   17

Pode ser abreviado para valor inicial: limite assumindo-se que o incremento é 1. Pode-se fazer, por exemplo:

>> 15:20
ans =
 
   15   16   17   18   19   20

Feedback

Quando se define um vetor, o octave apresenta imediatamente o mesmo, como aconteceu nos exercícios anteriores. Caso não se pretenda ter esse feedback, termina-se a instrução com ;. No exemplo seguinte define-se um vetor x com e sem ; no fim da instrução.

>> x = 1:10
x =
    1    2    3    4    5    6    7    8    9   10
>> x = 1:10;

Operações

Se aplicar um operador normal, como a multiplicação, a um argumento do tipo vetor, o mesmo é aplicado a todos os elementos do vetor.

>> val = [1 2 3 4 5]
val =
   1   2   3   4   5
>> val*2
ans =
    2    4    6    8   10

Da mesma forma, pode aplicar uma função a todos os elementos de um vetor.

>> valores = [0 pi/2 pi]
valores =
   0.00000   1.57080   3.14159
>> sin(valores)
ans =
   0.00000   1.00000   0.00000

Operadores sobre os elementos dos vectores

>> x = [4 5 6 7 8]
x =
   4   5   6   7   8
>> x^2
error: for A^b, A must be square
>> x.^2
ans =
 
   16   25   36   49   64

Exercícios

  1. Crie um vetor com todos os múltiplos de 3, entre 1 e 100.
  2. Seja x = [1 2 3 4 5].
    1. Calcule os valores da função y = -3x^2 +4x -1, para os valores de x.
    2. Calcule o máximo valor de y (no domínio definido por x).
  3. Considere os seguintes dados. Tem 3 artigos diferentes, cada um com o seu preço unitário, e quer adquirir determinadas quantidades de cada um desses artigos.
    • Seja preco = [ 2.45, 3.95, 8]
    • Seja quantidade = [2 6 3]
    1. Calcule o preço a pagar por cada um dos artigos, atendendo à quantidade.
    2. Calcule valor total, isto é o valor apagar por todos os artigos multiplicados pelas respectivas quantidades.

Grandes vetores

No Octave pode-se guardar uma ou mais variáveis num documento para posterior utilização. No documento heartrate.m, disponível em http://octave.di.uminho.pt/images/files/ tem a definição de um vetor chamado bpm. Descarregue o documento, e depois leia o vetor bpm do documento heartrate.m.

>> load heartrate.m bpm
 
>> load "C:/Users/jgr/Downloads/heartrate.m"
>> who
Variables in the current scope:
ans  bpm
>> bpm

Neste vetor estão registados os batimentos cardíacos (batimentos por minuto) registados com intervalos de 5 segundos. O registo começou às 08:40:19 do dia 2012-10-03.

i) Diga quantos valores tem o vetor bpm, ou seja, qual o comprimento ou dimensão do vetor bpm.

length(bpm)

ii) Diga qual o valor mínimo do vetor.

min(bpm)

ii) Diga qual o valor máximo do vetor.

max(bpm)

iii) Diga quantas vezes se registaram batimentos acima dos 160.

fortes = bpm(bpm > 160);
length(fortes)

iv) Diga qual a média dos batimentos cardíacos.

mean(bpm)

ou

sum(bpm)/length(bpm)

v) Mostre apenas os primeiros 5 elementos do vetor bpm.

bpm(1:5)