Baixe o app para aproveitar ainda mais
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);
Compartilhar