2016/2017 1 Operações com Matrizes Adição de matrizes + ( só se as matrizes tiverem o mesmo número de linhas (m) e colunas (n) ( C m n ) ) C=A+B se c ij =a ij +b ij i=1,...,m, j=1,...,n C é uma matriz com m linhas e n colunas ( C m n ). Multiplicação por um escalar (Seja a um escalar ( C) e B uma matriz com m linhas e n colunas ( C m n )) C=a B se c ij =a b ij i=1,...,m, j=1,...,n C é uma matriz com m linhas e n colunas ( C m n ).
2 >> c=10; A-c ans = -9-8 -7-6
2016/2017 3 Multiplicação de matrizes ( só se o número de colunas da primeira matriz for igual ao número de linhas da segunda matriz ) (Seja A uma matriz ( C m k ) e B uma matriz ( C k n )) k C=A B se c ij = a il b lj i=1,...,m, j=1,...,n l 1 C é uma matriz com m linhas e n colunas ( C m n ).
4
2016/2017 5 Divisão / ou \ Equivale a multiplicar respetivamente à direita ou à esquerda pela inversa. Se a matriz não for quadrada as operações são mais complexas Exponenciação de matrizes ^ (a matriz é quadrada) Se o expoente k for inteiro é o produto de k matrizes todas iguais; se o expoente é inteiro negativo (-k) é o produto de k matrizes iguais à inversa ( A -1 - associada à aplicação inversa); para outros valores do expoente o cálculo é mais complicado.
6
7
2013/2014 8 Transposta. C=A. se c ij =a ji i=1,...,m, j=1,...,n
2013/2014 9 Transconjugada C=A se c ij =ā ji i=1,...,m, j=1,...,n
2016/2017 10 Operações com arrays (elemento a elemento) C=A op B c ij = a ij op b ij i,j Só possíveis se os arrays tiverem a mesma dimensão. (Exceção: quando um dos operandos for um escalar, ele é sempre operado com os elementos do outro array)
2016/2017 11
2016/2017 12
2016/2017 13
2016/2017 14
2016/2017 15 Operações elemento a elemento: + - < > <= >= == ~= & Arrays:.*./.\.^ Operações com matrizes * / \ ^
16 Subarrays Dentro de parêntesis curvos e a seguir ao nome basta indicar a lista de índices que formam o subarray. Cria v3 com o elemento de v que está na 3ª posição Cria va com os elementos de v cujos índices são: 1, 2 e 5 Cria vfim com o último elemento de v
17
18
19 Cria um vector coluna B com os elementos de A ( 1ª coluna de A; 2ª coluna de A; ) Elemento de A que está na 2ª linha e 3ª coluna Elemento de A que está na 6ª posição
20 Cria B com os elementos da 3ª coluna de A Cria C com os elementos da 1ª e última coluna de A Cria D com os elementos da última linha de A Cria E com os elementos da 1ª linha que pertencem à 2ª, 3ª e 4ª coluna de A Cria F com os elementos da 1ª e 2ª linha que pertencem à 2ª e 3ª coluna de A
21 Ou: S=A(:,ones(1,8))
22 M é uma matriz da mesma dimensão de A com valores lógicos: 1 nas posições onde os elementos de A são pares e 0 nas restantes posições N é um vector com os elementos pares de A Elimina a 2ª coluna da matriz A Elimina a 1ª linha da matriz A
Funções que operam por colunas (linhas) sum(a,1) Soma por colunas os elementos de A Soma por linhas Soma de todos elementos de A (A(:) - vector coluna) Soma os elementos de x
24 Média por coluna Média por linhas Máximo por coluna Máximo entre os elementos de A e 2 Máximo por linhas Ordena por ordem crescente os números das colunas
1º parâmetro de saída: f1 contem o máximo de cada coluna 2º parâmetro de saída: f2 contem o índice da linha onde esse máximo ocorre 1º parâmetro de saída: ~ neste caso o máximo de cada coluna não aparece O máximo entre cada elemento de A e B
Produto acumulado por colunas Soma acumulado por colunas Produto acumulado por linhas
fornece um vector com os índices dos elementos que verificam a condição
2016/2017 28 Funções lógicas any - é verdadeiro se algum dos elementos for diferente de zero (dá a informação por colunas) Exemplo: any([0 1 0]) 1 all - é verdadeiro se todos os elementos forem diferentes de zero (dá a informação por colunas) Exemplo: all([1 2-1]) 1
2016/2017 29 isfinite - dá um array com 1 onde os elementos são finitos e zero nos restantes Exemplo: isfinite([0 inf;2 NaN]) [1 0;1 0]; isnan - dá um array com 1 onde os elementos são "NaN e zero nos restantes Exemplo: isnan([0 3 inf;2 NaN 3]) [0 0 0;0 1 0]; isinf - dá um array com 1 onde os elementos são "inf" e zero nos restantes Exemplo: isinf([0 3 inf;2 NaN 3]) [0 0 1;0 0 0];
2016/2017 30 ischar - dá 1 se o array for de caracteres Exemplos: ischar([0 3 inf;2 NaN 3]) 0; ischar(['abc','de']) 1 isempty- dá 1 se o array é vazio Exemplo: isempty([]) 1; isnumeric- dá 1 se o array é numérico Exemplo: isnumeric([0 3 inf;2+i NaN 3]) 1; isreal - dá 1 se todos os elementos do array não tiverem parte imaginária Exemplo: isreal([0 3 inf;2 NaN 3]) 0;
31 Instruções de saída (output) Instruções sem (;) ou disp(array) ou fprintf (ensinar mais tarde) Escreve elementos de array (todos do mesmo tipo) no Command Window.
32
33 Exercício 1 da página 29: Tabele a função f ( x) x 2 1 3 x para x=1:0.1:2
2016/2017 34 Exercício 2 da página 29: Dados dois pontos (x,y,z) R 3 determine a distância cartesiana dada por: d 2 2 x x y y z 2 1 2 1 2 1 z2 Que modificações tem de fazer para trabalhar em R n