Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Matrizes em MATLAB: Criação, Obtenção e Manipulação de Elementos, Notas de estudo de Informática

Saiba como criar, obter e manipular elementos de matrizes em matlab. Aprenda a criar matrizes, especificar índices para obter elementos individuais ou submatrizes, e utilizar funções como eye, rand e randn para gerar matrizes elementares. Além disso, saiba como utilizar o operador ':' para gerar sequências de números e obter submatrizes usando a notação ':'.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 23/01/2008

antonio-almeida-6
antonio-almeida-6 🇧🇷

2 documentos

1 / 27

Documentos relacionados


Pré-visualização parcial do texto

Baixe Matrizes em MATLAB: Criação, Obtenção e Manipulação de Elementos e outras Notas de estudo em PDF para Informática, somente na Docsity! MATLAB OPERAÇÕES COM MATRIZES Paulo Santos Nº 1026 Manuel Rua Nº 1024 António Almeida Nº 1023 Helder Regada Nº 960 Instituto Politécnico de Viseu Escola Superior De Tecnologia e Gestão de Lamego Engenharia Informática e Telecomunicações Criação de Matrizes Uma matriz é uma estrutura de dados bidimensional que permite guardar números de uma forma ordenada e indexável. Uma matriz pode ser expressa como um escalar (matriz 1 x 1), como um vector (matriz 1 x n ou n x 1) ou como uma matriz propriamente dita (matriz m x n). Os valores de uma Matriz são colocados entre parentesis rectos, sendo que, os elementos de uma coluna são separados por um espaço ou por uma vírgula, e as linhas são separadas por ponto e vírgula. É também necessário ter em mente, ao nomear as matrizes, que o Matlab faz distinção entre letras maiúsculas e minúsculas. Para criar, por exemplo, a seguinte matriz A com duas linhas e três colunas: A = 1 2 3 4 5 6     07/18/2019 2Engenharia Informática e Telecomunicações Os índices das matrizes são listas de números que podem ser armazenadas em vectores declarados previamente. Se pretendermos por exemplo, extrair a segunda linha da matriz podemos fazer :   >>v= A(2,[1 2 3]) v= 4 5 6 ou declarando primeiro um vector para os índices das colunas:   >>k= [1 2 3] >>v= A(2,k) v= 4 5 6   Índices 07/18/2019 5Engenharia Informática e Telecomunicações Também é possivel obter a diagonal da matriz sob a forma de um vector coluna. Por exemplo para a seguinte matriz a:   >> a=[1:4;5:8;9:12;13:16]  a =   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16   >> k= diag (a)  k =   1 6 11 16   Índices 07/18/2019 6Engenharia Informática e Telecomunicações A criação de vectores elemento a elemento é bastante morosa e para matrizes de grandes dimensões quase irrealizável. O Matlab permite gerar sequências de números de forma rápida se fizermos uso do operador “ : ”. Por exemplo, para gerar o vector v =[1,2,3,...,100] podemos fazer :   >>v= 1:100   A notação geral para o operador “ : ” é a seguinte : número_inicial : incremento : número_final Por exemplo, usando 2 como incremento : >> c=1:2:20 c = 1 3 5 7 9 11 13 15 17 19 Operador “ : ” 07/18/2019 7Engenharia Informática e Telecomunicações No caso anterior são indexadas todas as linhas da matriz. Para simplificar a notação, quando não se conhece exactamente o número de linhas de uma matriz, pode-se utilizar a notação :   >>B=a(:,1:2:3)  B = 1 3 5 7 9 11   Se quiséssemos obter a primeira linha da matriz A podíamos escrever :   >>A (1,:)  ans =   1 2 3 4 Operador “ : ” 07/18/2019 10Engenharia Informática e Telecomunicações As funções seguintes permitem a criação de algumas matrizes elementares: • zeros Cria uma matriz preenchida com zeros • ones Cria uma matriz preenchida com uns • eye Cria a matriz identidade • rand Cria uma matriz de números aleatórios com distribuição uniforme • randn Cria uma matriz de números aleatórios com entradas normalmente distribuídas (média 0 e desvio padrão 1) Matrizes Elementares 07/18/2019 11Engenharia Informática e Telecomunicações Vejamos alguns exemplos de utilização destas funções:   >>Z= zeros (2,5) (Matriz 2x5, preenchida com zeros) Z= 0 0 0 0 0 0 0 0 0 0   >>o= ones(2,3) (Matriz 2x3, preenchida com uns)  o=   1 1 1 1 1 1   >>a= ones(2,3)*3 (Matriz 2x3, preenchida com uns, multiplicada a= por três)    3 3 3 3 3 3 Matrizes Elementares 07/18/2019 12Engenharia Informática e Telecomunicações >>b= (1:4)’ (Criação de uma matriz (1x4). O simbolo “ ’ ” indica que se trata de uma matriz com uma coluna, caso contrário o Matlab assume uma linha.) b= 1 2 3 4 >>B= [b b [a;a]] (Matriz 4x4, formada a partir das matrizes a e b anteriores) B= 1 1 1 2 2 2 3 4 3 3 1 2 4 4 3 4 Concatenação de Matrizes 07/18/2019 15Engenharia Informática e Telecomunicações É possível remover de uma dada matriz qualquer conjunto de linhas e colunas. Para tal, basta atribuir o valor de uma matriz vazia definida por “[ ]” às linhas e colunas que se pretende remover. No exemplo que se segue, elimina-se a 2ª coluna da matriz A.   >>a= [1 2; 3 4]; A remoção de um elemento isolado de uma >>A= [a a; a a] matriz não é possível uma vez que esta deixaria A= 1 2 1 2 de respeitar as propriedades de uma matriz   3 4 3 4 >>A (1,2)=[ ] 1 2 1 2 ??? Indexed empty matrix assignment is not 3 4 3 4 allowed. (operação não é permitida pelo Matlab) >>A (:,2)= [ ] ( A 2º coluna da matriz A foi removida ) A= 1 1 2  3 3 4 1 1 2 3 3 4 Remoção de Linhas e colunas 07/18/2019 16Engenharia Informática e Telecomunicações Quando as matrizes são de grande dimensão torna-se bastante incómodo para o utilizador a apresentação do resultado no ecrã do computador de todos os cálculos efectuados. Para evitar a apresentação dos resultados basta colocar no final da linha de comando um ponto e vírgula tal como o seguinte exemplo demonstra:   >> g=[1:500;501:1000]; Supressão de Resultados 07/18/2019 17Engenharia Informática e Telecomunicações Multiplicação de Matrizes :   >>E= A*B (A subtracção de matrizes só é válida se o número de colunas de A é igual ao número de linhas de B. E =   132 142 152 162 304 330 356 382 476 518 560 602 -40 -46 -52 -58   Produto interno entre dois vectores linha x e y :   >>x= 1:4 (x = 1 2 3 4) >>y= 3:6 (y = 3 4 5 6) >>g = x*y’ (vector x * transposta do vector y) g= 50 Cálculos entre Matrizes 07/18/2019 20Engenharia Informática e Telecomunicações   Determinante da matriz: >> det(A) ans = 0 Valores próprios da matriz: >> eig(A) ans = 17.0623 0.0000 0.9377 -0.0000 Inversa da matriz:  >>inv(A)  ans = -4.5036 -0.0000 1.5012 3.0024 3.3777 1.1259 -1.8765 -2.6271 6.7554 -2.2518 -0.7506 -3.7530 -5.6295 1.1259 1.1259 3.3777 Cálculos entre Matrizes 07/18/2019 21Engenharia Informática e Telecomunicações Potência de uma matriz:   >>A^2 ou >>A*A ans = 26 36 46 56 74 100 126 152 122 164 206 248 -22 -28 -34 -40   Polinómio característico de uma matriz:   >>p= poly(A) p = 1.0000 -18.0000 16.0000 -0.0000 -0.0000  o que indica que o polinómio característico (λI) é: I) é:   λI) é: 4 -18 λI) é: 3 + 16 λI) é: 2 - 0 λI) é: 1 – 0 Cálculos entre Matrizes 07/18/2019 22Engenharia Informática e Telecomunicações Inverter a posição dos valores de uma matriz. Inverter a posição da esquerda para a direita: >>B = fliplr(A) B = 10 7 4 1 11 8 5 2 12 9 6 3   Inverter a posição de cima para baixo: >> B=flipud (A) B = 3 6 9 12 2 5 8 11 1 4 7 10 Transformação de Matrizes 07/18/2019 25Engenharia Informática e Telecomunicações Extrair a triangular de uma matriz. Seja a Matriz A: >> A = [-3:0;1:4;5:8;9:12] A = -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12   Triangular inferior. >> tril (A) ans = -3 0 0 0 1 2 0 0 5 6 7 0 9 10 11 12         Triangular superior. >> triu (A) ans = -3 -2 -1 0 0 2 3 4 0 0 7 8 0 0 0 12 Transformação de Matrizes 07/18/2019 26Engenharia Informática e Telecomunicações O Matlab permite resolver equações com matrizes, numericamente de forma muito eficiente. Considere-se a equação com matrizes (Ax = B) em que:   A = 1 2 1 e B= 1 4 1 2 0  6 3 1 2 Para resolver a equação podemos utilizar: x = A−1b e o correspondente comando Matlab   >>x= inv (A)*b x= 0.0588 0.7059 -0.4706   Equações com Matrizes 07/18/2019 27Engenharia Informática e Telecomunicações
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved