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

Cálculo Numérico - Versão Scilab

A.3 Matrizes


No Scilab, 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 Scilab é definida usando-se a seguinte sintaxe:

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

Exemplo A.3.1. Defina a matriz:

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

Solução. No Scilab, 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.3.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.3.2. Veja as seguintes linhas de comando:

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

A.3.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)  
 nc  =  
 
    2.  
 nl  =  
 
    3.

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.3.3. Veja as seguintes linhas de comando:

-->A = rand(3,4) //gera uma matriz randômica  
 A  =  
 
    0.2113249    0.3303271    0.8497452    0.0683740  
    0.7560439    0.6653811    0.6857310    0.5608486  
    0.0002211    0.6283918    0.8782165    0.6623569  
 
-->A //mostra toda a matriz A  
 ans  =  
 
    0.2113249    0.3303271    0.8497452    0.0683740  
    0.7560439    0.6653811    0.6857310    0.5608486  
    0.0002211    0.6283918    0.8782165    0.6623569  
 
-->A(2,3) //acessa o elemento a23  
 ans  =  
 
    0.6857310  
 
-->A(2:3,2:4) //acessa um bloco de A  
 ans  =  
 
    0.6653811    0.6857310    0.5608486  
    0.6283918    0.8782165    0.6623569

Definida uma matriz A no Scilab, 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,$)   o elemento da i-ésima linha e da última coluna  
A($,j)   o elemento da última linha e da j-ésima coluna

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

-->B = rand(4,4)  
 B  =  
 
    0.2113249    0.6653811    0.8782165    0.7263507  
    0.7560439    0.6283918    0.0683740    0.1985144  
    0.0002211    0.8497452    0.5608486    0.5442573  
    0.3303271    0.6857310    0.6623569    0.2320748  
 
-->aux = B(:,2); B(:,2) = B(:,3); B(:,3) = aux  
 B  =  
 
    0.2113249    0.8782165    0.6653811    0.7263507  
    0.7560439    0.0683740    0.6283918    0.1985144  
    0.0002211    0.5608486    0.8497452    0.5442573  
    0.3303271    0.6623569    0.6857310    0.2320748

A.3.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 Scilab, 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.3.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:32.

Informe erros ou edite você mesmo!