Você está na página 1de 26

Introdução ao MATLAB 6.

Ambiente MATLAB

] MATLAB → MATrix LABoratory

] Programação baseada em Matrizes

] Vetores e escalares também podem ser


considerados matrizes, 1xN, Nx1, 1x1

1
Tela Principal do MATLAB

Tela Principal do MATLAB


Janela de Comando

2
Tela Principal do MATLAB

Janela de Histórico

Tela Principal do MATLAB


Launch Pad

3
Tela Principal do MATLAB

Matrizes no MATLAB

Quadro “Melancholia I”, do artista


alemão e matemático amador
Albrecht Dürer

4
Quadrado Mágico

Definindo Matrizes no MATLAB

] Há várias maneiras de se criar uma matriz:


\ Explicitamente
\ Lendo de arquivos em disco
\ Usando funções built-in do MATLAB
\ Usando m-files próprias

5
Definindo uma Matriz Explicitamente

] Elementos de uma linha são separados


por espaços ou vírgulas.
vírgulas
] O final de cada linha é indicado por um
ponto-e-vírgula.
vírgula
] A lista de elementos é delimitada por
colchetes [ ].

Definindo uma Matriz Explicitamente

] No caso do quadrado mágico:

>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]


A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

6
Operações em Matrizes

] sum:
sum soma dos elementos de cada coluna

>> sum(A)
ans =
34 34 34 34

Operações em Matrizes

] ’ : transposição de uma matriz


>> A
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

7
Operações em Matrizes

] ’ : transposição de uma matriz


>> A’
ans =
16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1

Operações em Matrizes

] sum(A’)’:
sum(A’)’ soma dos elementos de cada linha

>> sum(A’)’
ans =
34
34
34
34

8
Operações em Matrizes

] diag:
diag elementos da diagonal da matriz

>> diag(A)
ans =
16
10
7
1

Operações em Matrizes

] sum(diag()):
()) soma dos elementos da
diagonal da matriz

>> sum(diag(A))
ans =
34

9
Operações em Matrizes

] fliplr:
fliplr espelhamento horizontal de matriz

>> A
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Operações em Matrizes

] fliplr:
fliplr espelhamento horizontal de matriz

>> fliplr(A)
A =
13 2 3 16
8 11 10 5
12 7 6 9
1 14 15 4

10
Operações em Matrizes

] flipud:
flipud espelhamento vertical de matriz

>> A
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Operações em Matrizes

] flipud:
flipud espelhamento vertical de matriz

>> flipud(A)
A =
4 15 14 1
9 6 7 12
5 10 11 8
16 3 2 13

11
Operações em Matrizes

] diag(fliplr()):
()) antidiagonal de matriz

>> diag(fliplr(A))
ans =
13
11
6
4

Operações em Matrizes

] sum(diag(fliplr())):
())) soma dos elementos
da antidiagonal da matriz

>> sum(diag(fliplr(A)))
ans =
34

12
Indexação de Matrizes

] Matriz Bidimensional: A(i,j) é o elemento


da i-ésima linha, j-ésima coluna

A = 16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

A(2,3) = 11

Indexação de Matrizes

] Soma dos Elementos da 2a Linha:

>> A(2,1) + A(2,2) + A(2,3) + A(2,4)

ans =
34

13
Redimensionamento Automático

>> X = A;
>> X(5,5) = 29
X =
16 3 2 13 0
5 10 11 8 0
9 6 7 12 0
4 15 14 1 0
0 0 0 0 29

O Operador ‘:’ (dois pontos)

>> 1:10
ans =
1 2 3 4 5 6 7 8 9 10

>> 1:3:27
ans =
1 4 7 10 13 16 19 22 25

14
O Operador ‘:’ (dois pontos)

>> 60:-7:0
ans =
60 53 46 39 32 25 18 11 4

>> 0:pi/4:pi
ans =
0 0.7854 1.5708 2.3562 3.1416

O Operador ‘:’ e Matrizes

\ A(1:m, n):
n) primeiros m elementos da n-ésima coluna
\ A(:, n):
n) todos os elementos da n-ésima coluna
\ A(:, end):
end) todos os elementos da última coluna
\ A(m, 1:n):
1:n) primeiros n elementos da m-ésima linha
\ A(m, :):
:) todos os elementos da m-ésima linha
\ A(end,:):
A(end,:) todos os elementos da última linha

15
O Operador ‘:’ e Matrizes

>> A(1:4,1) >> A(:,1)


ans = ans =
16 OU 16
5 5
9 9
4 4

O Operador ‘:’ e Matrizes

>> A(:,4) >> A(:,end)


ans = ans =
13 OU 13
8 8
12 12
1 1

16
Quadrado Mágico

] Por que todas as somas no quadrado


mágico são iguais a 34?
34
\ Suponha que se deseja agrupar os números
de 1 a 16 em 4 grupos com somas iguais
\ Logo, esta soma tem que ser:

>> sum(1:16)/4
ans =
34

Quadrado Mágico

] Matlab → função magic:


magic

>> B = magic(4)
B =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

17
Quadrado Mágico

] Matlab → função magic:


magic

Quadrado Mágico de Dürer


A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Quadrado Mágico

] Colunas 2 e 3 estão invertidas

>> C = B(:,[1 3 2 4])


C =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

18
Funções de Criação de Matrizes

] zeros:
zeros matriz de zeros
] ones:
ones matriz de uns
] rand:
rand matriz de números aleatórios com
distribuição uniforme
] randn:
randn matriz de números aleatórios com
distribuição normal (Gaussiana)

Funções de Criação de Matrizes

>> Z = zeros(3,5)
Z =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

19
Funções de Criação de Matrizes

>> Q = 4*ones(5,5)
Q =
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4

Funções de Criação de Matrizes

>> N = rand(2,4)
N =
0.95013 0.60684 0.8913 0.45647
0.23114 0.48598 0.7621 0.018504

20
Lendo Matrizes de Arquivos

] Crie um arquivo chamado qmagico.txt,


contendo as seguintes linhas:

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Lendo Matrizes de Arquivos

] Carregue o arquivo :
>> load qmagico.txt
>> qmagico
qmagico =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

21
Concatenação de Matrizes

>> A = magic(4);
>> B = [A A+32; A+48 A+16]
B = 16 2 3 13 48 34 35 45
5 11 10 8 37 43 42 40
9 7 6 12 41 39 38 44
4 14 15 1 36 46 47 33
64 50 51 61 32 18 19 29
53 59 58 56 21 27 26 24
57 55 54 60 25 23 22 28
52 62 63 49 20 30 31 17

Concatenação de Matrizes (cont)

>> sum(B)
ans =
260 260 260 260 260 260 260 260

>> sum(B’)
ans =
196 196 196 196 324 324 324 324

22
Exclusão de Linhas ou Colunas

>> X = A;
>> X(:,2) = []
X =
16 2 13
5 11 8
9 7 12
4 14 1

Exclusão de Linhas ou Colunas

>> X(1,2) = []
??? Indexed empty matrix assignment is not allowed.

23
Álgebra Linear para Matrizes

] + : soma
] - : subtração
] / : divisão de matrizes
] * : multiplicação de matrizes
] ^ : potência de uma matriz
] inv : inversa de uma matriz

Operadores Aritméticos para Matrizes

] + : soma
] - : subtração
] ./ : divisão elemento a elemento
] .* : multiplicação elemento a elemento
] .^ : potência elemento a elemento

24
Aritmética x Álgebra Linear

>> A = magic(4); >> A = magic(4);


>> B = A+A >> C = A-A
B = C =
32 4 6 26 0 0 0 0
10 22 20 16 0 0 0 0
18 14 12 24 0 0 0 0
8 28 30 2 0 0 0 0

Aritmética x Álgebra Linear

>> A = magic(4); >> A = magic(4);


>> B = A./A >> C = A/A
Warning: Matrix is close to singular
B = or badly scaled. Results may be
inaccurate. RCOND = 9.796086e-018.
1 1 1 1
C =
1 1 1 1
1 0 0 0
1 1 1 1 -0.67 -1 2 0.67
1 1 1 1 -0.04 -0.13 1.13 0.04
0 0 0 1

25
Aritmética x Álgebra Linear

>> A = magic(4); >> A = magic(4);


>> B = A.*A >> C = A*A
B = C =
256 4 9 169 345 257 281 273
25 121 100 64 257 313 305 281
81 49 36 144 281 305 313 257
16 196 225 1 273 281 257 345

Aritmética x Álgebra Linear

>> A = magic(4); >> A = magic(4);


>> B = A.^2 >> C = A^2
B = C =
256 4 9 169 345 257 281 273
25 121 100 64 257 313 305 281
81 49 36 144 281 305 313 257
16 196 225 1 273 281 257 345

26

Você também pode gostar