Buscar

aula-3-matlab

Prévia do material em texto

Manipulação e Operações com Escalares, Vetores e Matrizes 
 
Operações numéricas podem ser feitas em vetores e 
matrizes inteiras. 
 
Ex.: Vetor-escalar 
>> v = [3 7 2 1]; 
>> v = v * 3 
v = 
 9 21 6 3 
 
>> v = [3 7 2 1]; 
>> v = v / 2 
v = 
 1.5000 3.5000 1.0000 0.5000 
 
 
 
 
 
 
1 
Estas operações também podem ser executadas com 
matrizes. Ex.: Matriz-escalar 
>> m = [4:6; 3:-1:1] 
m= 
 4 5 6 
 3 2 1 
>> m * 2 
ans = 
 8 10 12 
 6 4 2 
 
Esta operação é conhecida como multiplicação ESCALAR. 
2 
Operações com Array 
São operações realizadas sobre vetores e matrizes termo a termo 
ou elemento por elemento. Os dois arrays devem ter as mesmas 
dimensões. 
Ex.: 
>> v1 = 2 : 5 
v1 = 
 2 3 4 5 
>> v2 = [33 11 5 1] 
v2 = 
 33 11 5 1 
>> v1 + v2 
ans = 
 35 14 9 6 
A mesma regra é válida para subtração e para matrizes. 
 
3 
Entretanto, para qualquer operação baseada em multiplicação 
(multiplicação, divisão e exponenciação), deve-se utilizar o operador 
“ . “ (ponto) em frente do operador da operação desejada. 
Ex.: 
>> v1 = 2 : 5 
v1 = 
 2 3 4 5 
>> v2 = [33 11 5 1] 
v2 = 
 33 11 5 1 
>> v1 .* v2 
ans = 
 66 33 20 5 
 
A mesma regra é válida para matrizes. Observe que não é a multiplicação 
matricial, mas sim, multiplicação elemento a elemento (Multiplicação 
escalar pontuada). 
 
4 
Operadores de array ou Estruturais 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Obs.: soma e subtração não tem o “ . “, pois são as mesmas para 
estrutural ou matricial. 
 
Operação Forma MatLab Comentários 
Multiplicação Estrutural 
 
a .* b Multiplicação elemento a 
elemento. Mesma dimensão 
ou um escalar. 
Divisão à Direita Estrutural 
 
a ./ b 
 
D i v i s ã o e l e m e n t o a 
elemento. Mesma dimensão 
ou um escalar. 
Divisão à Esquerda Estrutural 
 
a .\ b 
 
D i v i s ã o e l e m e n t o a 
e l e m e n t o , m a s b n o 
numerador. Mesma dimensão 
ou um escalar. 
Exponenciação Estrutural a .ˆ b Exponencial elemento a 
elemento. Mesma dimensão 
ou um escalar. 
5 
Multiplicação Matricial 
 
Multiplicação matricial não significa multiplicar termo por termo! 
Regra: 
 
 
 
Ex.: 
 
 
 
 
 
 
Fazer o teste no MatLab. 
 
 
 
mxn
A[ ] *  
nxp
B[ ] =
mxp
C[ ]
3 8 0
1 2 5
!
"
#
#
$
%
&
&
*  
1 2 3 1
4 5 1 2
0 2 3 0
!
"
#
#
#
#
$
%
&
&
&
&
=
35 46 17 19
9 22 20 5
!
"
#
#
$
%
&
&
6 
Exercícios 
1.   Considere as matrizes c e r a seguir: 
 
 
 
 
 
a)   Qual a dimensão das matrizes resultantes (itens b e c)? 
b)   Qual o resultado de c * r? 
c)   Qual o resultado de r * c? 
d)   Faça o teste no Matlab. 
 
b) c) 61 
c=
5
3
7
1
!
"
#
#
#
#
$
%
&
&
&
&
r = 6 2 3 4[ ]
30 10 15 20
18 6 9 12
42 14 21 28
6 2 3 4
!
"
#
#
#
#
$
%
&
&
&
& 7 
Operadores Matriciais 
 
 
 
 
 
 
 
 
 
 
Obs.: soma ( + ) e subtração ( - ). 
 
Operação Forma MatLab Comentários 
Multiplicação Matricial 
 
a * b Multiplicação das matrizes a 
e b. 
Divisão Matricial à Direita 
 
a / b 
 
Divisão matricial: a * inv(b) 
Onde inv(b) é o inverso da 
matriz b 
Divisão Matricial à Esquerda 
 
a \ b 
 
Divisão matricial: inv(a) * b 
Onde inv(a) é o inverso da 
matriz a 
8 
Exercícios 
1.   Assuma que a , b, c e d são definidas como a seguir: 
 
 
 
 
Qual é o resultado das seguintes expressões? 
 
a)   a + b 
b)   a .* b 
c)   a * b 
d)   a * c 
e)   a + c 
f)   a + d 
g)   a .* d 
h)   a * d 
 
a=
1 0
2 1
!
"
#
$
%
& b=
-1 2
0 1
!
"
#
$
%
& c=
3
2
!
"
#
$
%
& d=5
9 
a) 
0 2
2 2
!
"
#
$
%
& b)
-1 0
0 1
!
"
#
$
%
& c)
-1 2
-2 5
!
"
#
$
%
& d)
3
8
!
"
#
$
%
&
e) Operação ilegal. Número colunas diferente. 
f) 
6 5
7 6
!
"
#
$
%
& g)
5 0
10 5
!
"
#
$
%
& h)
5 0
10 5
!
"
#
$
%
&
10 
11 
Partição de Matrizes 
Algumas operações são mais fáceis de serem realizadas se a matriz 
é particionada em blocos (computação paralela). 
Por ex.: 
 
 
 
 
 
 
 
 
 
 
A = 
1     2    3    4
5    6    7    8
9   10  11   12
13  14  15  16
!
"
#
#
#
#
$
%
&
&
&
&
A11 A12 
A21 A22 
A11 = 
1   2
5   6
!
"
#
$
%
&  A12 = 
3   4
7   8
!
"
#
$
%
&  A21 = 
 9   10
13   14
!
"
#
$
%
&  A22 = 
11   12
15   16
!
"
#
$
%
&  
12 
No MatLab: 
Considerando uma matriz A: 
 
B = A (linhas, colunas) 
 
Onde: linhas = linha_inicial:linha_final 
 colunas = coluna_inicial:coluna_final 
 
Para o exemplo anterior 
A11 = A(1:2, 1:2); 
A12 = A(1:2, 3:4); 
A21 = A(3:4, 1:2); 
A22 = A(3:4, 3:4);

Continue navegando