Use o botão abaixo para reportar erros ou dar sugestões.

Cálculo Numérico - Versão GNU Octave

A.5 Matrizes


No GNU Octave, matriz é o tipo básico de dados, a qual é definida por seu número de linhas, colunas e tipo de dado (real, inteiro, lógico, etc.). Uma matriz A = [ai,j]i,j=1m,n no GNU Octave é definida usando-se a seguinte sintaxe:

A = [ a11 , a12 , ... , a1n ; ...; am1 , am2 , ... , amn ]

Exemplo A.5.1. Defina a matriz:

A = 1 2 3 4 5 6 (A.1)

Solução. No GNU Octave, digitamos:

>> A = [1 , 2 , 3 ; 4 , 5 , 6]  
A =  
   1   2   3  
   4   5   6

♢

A seguinte lista contém uma série de funções que geram matrizes particulares:

eye      matriz identidade  
linspace vetor de elementos linearmente espaçados  
ones     matriz cheia de uns  
zeros    matriz nula

A.5.1 O operador “:”


O operador “:” cria um vetor linha de elementos. A sintaxe:

v = i:s:j

cria um vetor linha:

v = [i,i + s,i + 2s,…,i + ns] (A.2)

onde n é o maior inteiro tal que i + ns ≤ j.

Exemplo A.5.2. Veja as seguintes linhas de comando:

>> u = 2:6  
u =  
   2   3   4   5   6  
>> v = 10:-2:3  
v =  
   10    8    6    4

A.5.2 Obtendo dados de uma matriz


A função size retorna as dimensões de uma matriz, por exemplo:

>> A = ones(3,2)  
A =  
   1   1  
   1   1  
   1   1  
>> [nl, nc] = size(A)  
nl =  3  
nc =  2

informando que a matriz A tem três linhas e duas colunas.

Existem vários métodos para acessar os elementos de uma matriz dada A:

  • a matriz inteira acessa-se com a sintaxe:
    A

  • o elemento da i-ésima linha e j-ésima coluna acessa-se usando a sintaxe:
    A(i,j)

  • o bloco formado pelas linhas i1, i2 e pelas colunas j1, j2 obtém-se usando a sintaxe:
    A(i1:i2, j1:j2)

Exemplo A.5.3. Veja as seguintes linhas de comando:

>> A = rand(3,4)  
A =  
   0.356041   0.896038   0.761722   0.447774  
   0.453682   0.071638   0.029215   0.500115  
   0.885188   0.387276   0.566189   0.683588  
>> A  
A =  
   0.356041   0.896038   0.761722   0.447774  
   0.453682   0.071638   0.029215   0.500115  
   0.885188   0.387276   0.566189   0.683588  
>> A(2,3)  
ans =  0.029215  
>> A(2:3,2:4)  
ans =  
   0.071638   0.029215   0.500115  
   0.387276   0.566189   0.683588

Definida uma matriz A no GNU Octave, as seguintes sintaxes são bastante úteis:

A(:,:)   toda a matriz  
A(i:j,k) os elementos das linhas i até j (inclusive) da k-ésima coluna  
A(i,j:k) os elementos da i-ésima linha das colunas j até k (inclusive)  
A(i,:)   a i-ésima linha da matriz  
A(:,j)   a j-ésima coluna da matriz  
A(i,end) o elemento da i-ésima linha e da última coluna  
A(end,j) o elemento da última linha e da j-ésima coluna

Exemplo A.5.4. Veja as seguintes linhas de comando:

>> B = rand(4,4)  
B =  
 
   0.246251   0.931915   0.094609   0.519181  
   0.926740   0.898039   0.377078   0.260630  
   0.133661   0.652755   0.670097   0.390773  
   0.379430   0.314611   0.829729   0.484622  
 
>> aux=B(:,2); B(:,2)=B(:,3); B(:,3)=aux  
B =  
 
   0.246251   0.094609   0.931915   0.519181  
   0.926740   0.377078   0.898039   0.260630  
   0.133661   0.670097   0.652755   0.390773  
   0.379430   0.829729   0.314611   0.484622

A.5.3 Operações matriciais e elemento-a-elemento


As operações matriciais elementares seguem a mesma sintaxe que as operações elementares de números. Agora, no GNU Octave, também podemos fazer operações elemento-a-elemento colocando um ponto “.” antes da operação desejada.

Aqui, temos as sintaxes análogas entre operações matriciais e operações elemento-a-elemento:

+ adição               .+ adição elemento-a-elemento  
- subtração            .- subtração elemento-a-elemento  
* multiplicação        .* multiplicação elemento-a-elemento  
                       ./ divisão elemento-a-elemento  
^ potenciação          .^ potenciação elemento-a-elemento  
’ transposta conjugada .’ transposta (não conjugada)

Exemplo A.5.5. Veja as seguintes linhas de comando:

>> A = ones (2,2)  
A =  
   1   1  
   1   1  
 
>> B = 2 * ones(2, 2)  
B =  
   2   2  
   2   2  
 
>> A * B  
ans =  
   4   4  
   4   4  
 
>> A .* B  
ans =  
   2   2  
   2   2

Creative Commons License Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 19/8/2020 às 17:36:34.

Informe erros ou edite você mesmo!