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


Tutorial de Matlab: aulas teóricas e exercícios exemplares, Exercícios de Matlab

Ensinamentos de Matlab aulas teóricas e exercícios exemplares

Tipologia: Exercícios

2018

Compartilhado em 14/03/2018

nailson-cardoso
nailson-cardoso 🇵🇹

5

(1)

1 documento

1 / 27

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
André Ricardo Backes
backes@facom.ufu.br
Universidade Federal de Uberlândia - Faculdade de computação
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Pré-visualização parcial do texto

Baixe Tutorial de Matlab: aulas teóricas e exercícios exemplares e outras Exercícios em PDF para Matlab, somente na Docsity!

AndréRicardoBackes

[email protected]

UniversidadeFederaldeUberlândia-Faculdadedecomputação

    1. Comandos Iniciais
    • 1.1. Definição de Variáveis
    • 1.2. Separadores de Comandos......................................................................................
    1. Retorno de Funções
    1. Números Complexos
    1. Criando Matrizes
    • 4.1. Definindo uma Matriz
    • 4.2. Rotinas para criação de uma Matriz
    • 4.3. Acessando elementos de Matrizes..........................................................................
    • 4.4. Concatenação de Matrizes
    1. Operador :
    • 5.1. Operador : e Matrizes
    • 5.2. Exclusão de Linhas ou Colunas..............................................................................
    1. Operações com Matrizes
    1. Criando Funções
    1. Operadores Aritméticos
    1. Operadores Lógicos
    1. Estruturas Condicionais
    • 10.1. Laço for
    • 10.2. Laço while
    • 10.3. Comandos if e if-else........................................................................................
    • 10.4. Comando switch case
    • 10.5. Comando continue e break
    1. Rotinas Utéis
    • 11.1. A função Find
    • 11.2. O comando disp
    • 11.3. O comando Input
    • 11.4. Funções Básicas................................................................................................
    1. Comandos Gráficos
    • 12.1. Desenhando Curvas
    • 12.2. Estilos de Linhas e Cores do Comando plot e plot3.........................................
    • 12.3. Desenhando Superfícies
    • 12.4. Comando colorbar
    • 12.5. Inserindo Anotações num Gráfico....................................................................
    • 12.6. O comando figure
    • 12.7. Particionando a Tela
    1. Manipulando Strings
    1. Acessando Arquivos
    • 14.1. Comando dlmread
    • 14.2. Comando dlmwrite
    • 14.3. Comando textread.............................................................................................
    • 14.4. Comando fopen
    • 14.5. Comando feof
    • 14.6. Comando fclose
    • 14.7. Comando fgetl
    • 14.8. Comando fprintf

4. Criando Matrizes

4.1. Definindo uma Matriz

Elementos de uma linha são separados por espaços ou vírgulas. O final de cada linha é indicado por um ponto-e-vírgula. A lista de elementos é delimitada por colchetes [ ]. Ex: Matriz Bidimensional 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

Vetor (Matriz Linha ou Coluna) B = [16 3 2 13] B = 16 3 2 13

C = [16; 5; 9; 4]

C =

4.2. Rotinas para criação de uma Matriz

O Matlab possui algumas rotinas que permitem a criação e manipulação de matrizes. Ex: zeros : matriz de zeros Z = zeros(3,5) Z = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

ones: matriz de uns Q = ones(5,5) Q= 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

rand: matriz de números aleatórios com distribuição uniforme N = rand(2,4) N = 0.95013 0.60684 0.8913 0. 0.23114 0.48598 0.7621 0.

randn: matriz de números aleatórios com distribuição normal (Gaussiana) N = randn(3,3) N = -0.4326 0.2877 1. -1.6656 -1.1465 -0. 0.1253 1.1909 0.

eye: matriz identidade N=eye(3) N = 1 0 0 0 1 0 0 0 1

4.3. Acessando elementos de Matrizes

Numa matriz bidimensional, A(i,j) é o elemento da i-ésima linha, j-ésima coluna Num vetor, B(i) é o i-ésimo elemento. Ex: A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

A(2,3) = 11

B = 16 3 2 13

B(2) = 3

4.4. Concatenação de Matrizes

A concatenação de matrizes é feita da mesma maneira como é feita a definição de uma matriz.

A = [B C; D E];

ans = 0 0.7854 1.5708 2.3562 3.

5.1. Operador : e Matrizes

O operador : é muito útil quando se deseja selecionar apenas uma parte da matriz para

trabalhar. Ex: A(1:m, n): primeiros m elementos da n-ésima coluna A(:, n): todos os elementos da n-ésima coluna A(:, end): todos os elementos da última coluna A(m, 1:n): primeiros n elementos da m-ésima linha A(m, :): todos os elementos da m-ésima linha A(end,:): todos os elementos da última linha A(:,[1 2 4]): retorna as colunas 1, 2 e 4

5.2. Exclusão de Linhas ou Colunas

A exclusão de linhas ou colunas é feita definindo a linha ou coluna a ser excluída como vazia. Ex: X = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1];

X(:,2) = [ ]

X =

6. Operações com Matrizes

sum: soma dos elementos de cada coluna Ex: sum(A) ans = 34 34 34 34

’ (aspa simples) : transposição de uma matriz Ex: A’ ans = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1

diag: elementos da diagonal da matriz Ex: diag(A) ans =

inv : inversa de uma matriz Ex: inv(A) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 9.796086e-018. ans = 1.0e+015 * 0.1251 0.3753 -0.3753 -0. -0.3753 -1.1259 1.1259 0. 0.3753 1.1259 -1.1259 -0. -0.1251 -0.3753 0.3753 0.

size: Retorna a dimensão da matriz M Ex: size(A); ans = 4 4

dot(V1,V2): Produto escalar de V1 por V Ex: dot(A,A) ans = 378 370 370 378

cross(V1,V2): Produto vetorial de V1 por V Ex: B=[1 2 3; 4 5 6;7 8 9] cross(B,B) ans = 0 0 0 0 0 0 0 0 0

trace(M): Traço da matriz M (soma dos elementos na diagonal principal) Ex: trace(A) ans = 34

det(M): Determinante da matriz M Ex: Det(A) ans =

- : Subtração Calcula a diferença entre 2 ou mais números. No caso de matrizes, calcula a diferença termo a termo.

Ex: C = A - A C = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

/ : Divisão Realiza a divisão entre dois números. No caso de matrizes a divisão atua de maneira diferente. A Expressão

C = A / B;

É equivalente a

C = A * inv(B);

./ : Divisão Termo a Termo Realiza a divisão entre dois números. No caso de matrizes, realiza a divisão termo a termo da matriz. Para isso, as matrizes devem ter o mesmo tamanho.

Ex: B = A ./ A B = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

*** : Multiplicação** Realiza a multiplicação entre dois números. No caso de matrizes, é calculado o produto matricial.

Ex: C = A*A C = 345 257 281 273 257 313 305 281 281 305 313 257 273 281 257 345

. : Multiplicação Termo a Termo* Realiza a multiplicação entre dois números. No caso de matrizes, realiza a multiplicação termo a termo da matriz. Para isso, as matrizes devem ter o mesmo tamanho.

Ex: B = A .* A B = 256 4 9 169 25 121 100 64 81 49 36 144 16 196 225 1

^ : Potência Realiza a operação de potenciação entre dois números. No caso de matrizes, é calculado o produto matricial n vezes.

Ex: C = A ^ 2 C = 345 257 281 273 257 313 305 281 281 305 313 257 273 281 257 345

.^ : Potência Termo a Termo Realiza a operação de potenciação entre dois números. No caso de matrizes, realiza a potenciação termo a termo da matriz. Ex: B = A .^ A B = 256 4 9 169 25 121 100 64 81 49 36 144 16 196 225 1

mod : Resto da divisão inteira Retorna o resto da divisão inteira x/y , onde x e y são números inteiros. Ex: mod(3,2) ans = 1;

mod(13,5) Ans = 3;

for i=1:5, X(i)=i^2; end

10.2. Laço while

O laço while testa uma condição e executa uma série de comandos enquanto a condição for verdadeira. while condição comandos end;

Ex: a = l; b = 15; while a<b a = a+l b = b-l end;

10.3. Comandos if e if-else

O comando if testa uma condição e executa uma ação se tal condição for verdadeira. if condição comandos end;

Já o comando if-else, testa uma condição. Se a condição é verdadeira, executa os comandos do if; se a condição é falsa, executa os comandos do else. if condição comandos do if else comandos do else end;

Ex: x=1; y=5; if x<y x=x+1; else y=y+1; end;

10.4. Comando switch case

Parecido com o comando if-else, este comando permite que se escolha uma opção entre várias dependendo do resultado de uma variável ou expressão. Ex: switch A(2,2) case 0 A(2,2) = A(2,2) +1; case 1 A(2,2) = A(2,2) +3; case 2 A(2,2) = A(2,2) +5; otherwise A(2,2) = 0; end;

10.5. Comando continue e break

Esses dois comandos servem para quebrar a continuidade de laços de repetição, como o for e o while. No entanto, existe uma grande diferença entre esses dois comandos.

O comando continue interrompe a execução do laço e faz com que ele avance para a sua próxima iteração, pulando a que estava.

O comando break interrompe a execução do laço e o termina, fazendo com que o MatLab pule para a primeira instrução fora do laço.

11. Rotinas Utéis

11.1. A função Find

A função find retorna os índices de uma matriz ou vetor que satisfazem uma determinada condição, sendo, portanto muito útil para selecionar elementos de uma matriz / vetor. Ex: Retornar todos elementos de A que são maiores que 10. X = find(A>10);

Retornar todos elementos de A que são maiores que 10 e menores que 50. X = find(A>10 & A<50);

11.2. O comando disp

Quando quisermos exibir o conteúdo de uma matriz sem imprimir seu nome ou imprimir um pequeno texto, usamos o comando disp. Assim, se a variável temp contiver um valor de temperatura em graus Celsius, podemos imprimir o valor em uma linha de comando e a unidade na linha posterior:

max(X): Maior elemento da matriz X; sort(X): Organiza os elementos do vetor ou matriz X em ordem crescente; mean(X): média de um vetor; std(X): Desvio Padrão de um vetor; size(X): Retorna as dimensões da matriz. i: número imaginário, igual a √-1; j: número imaginário, igual a √-1; real(C): Retorna a parte real de um número complexo C; imag(C): Retorna a parte imaginária de um número complexo C; conj(C): Retorna o conjugado de um número complexo C; angle(C): Retorna a fase de um número complexo C; abs(C): Retorna o módulo de um número; zeros(m,n): Cria uma matriz com zeros; ones(m,n): Cria uma matriz com 1’s. rand(m,n): Cria uma matriz com números aleatórios; randn(m,n): Cria uma matriz com números aleatórios, com distribuição normal; eye(n): Cria uma matriz identidade de ordem n; diag(X): Retorna os elementos da diagonal da matriz; inv(X): Retorna a inversa de uma matriz; dot(V1,V2): Produto escalar de V1 por V2; cross(V1,V2): Produto vetorial de V1 por V2; trace(M): Traço da matriz M (soma dos elementos na diagonal principal); det(M): Determinante da matriz M; [a b] = eig(M): Retorna em a os auto-vetores e em b os autovalores de M; mod(x,y): Retorna o resto da divisão inteira x/y; find(condição da matriz): retorna os índices de uma matriz que concordem com uma determinada condição; disp(texto): exibe um texto na Command Window ; input(texto): Faz uma requisição de dados ao usuário na Command Window ; plot(x,y): Desenha um gráfico bidimensional; plot3(x,y,z): Desenha um gráfico tridimensional;

12. Comandos Gráficos

12.1. Desenhando Curvas

O comando plot serve para desenhar um gráfico bidimensional. Para desenhar um gráfico tridimensional, utiliza-se o comando plot Várias são as formas de uso e opções adicionais para traçado de gráficos.

Plotando Vetores: plot(Y): plota o vetor Y contra os índices de seus elementos. plot(X,Y): plota o vetor X contra o vetor Y, onde ambos possuem o mesmo número de elementos. plot(X1,Y1, X2,Y2,... Xn,Yn): plota X1 versus Y1, X2 versus Y2,…, Xn versus Yn num mesmo gráfico.

Plotando Matrizes: plot(Y): Se Y é uma matriz, plota as colunas de Y versus o índice da linha. plot(X,Y): Se Y é uma matriz e X um vetor, plota as linhas ou colunas de Y versus o vetor X. O mesmo vale no caso de X ser a matriz e Y o vetor. plot(X,Y): Se X e Y são matrizes de mesma dimensão, plota as colunas de X versus as colunas de Y.

Obs: O comando plot3 funciona de forma semelhante ao comando plot. A diferença é que ele utiliza 3 parâmetros de dados Ex: plot3(X,Y,Z)

12.2. Estilos de Linhas e Cores do Comando plot e plot

Além do parâmetro referente aos dados a serem exibidos, esses comandos possuem um outro parâmetro referente à cor e tipo de traço.

plot(X,Y,config)

config é na verdade um conjunto de símbolos escolhidos pelo usuário de forma a alterar o estilo do gráfico. Se esse parâmetro não foi utilizado, ele assumira a configuração padrão (linha azul e continua).

Simbolo Cor Símbolo Marcador Símbolo Tipo de Linha

y amarelo . Ponto - Linha contínua

m Lilás^ *^ Estrela^ -- Linha tracejada

c azul claro ° Círculo -. Traços e pontos

r vermelho^ +^ +^ :^ Linha pontilhada

g verde^ x x b azul escuro s Quadrado

w branco^ d^ Losango k preto v Triângulo p/ baixo

^

Triângulo p/ cima < Triângulo p/ esquerda

Triângulo p/ direita p Pentagrama

Ex: O comando mesh desenha uma malha 3D não preenchida.

O comando surf desenha uma superfície 3D preenchida.

O comando contour desenha um conjunto de curvas de nível em um plano.

O comando contour3 desenha um conjunto de curvas de nível em um espaço tridimensional.

12.4. Comando colorbar

Esse comando permite desenhar uma barra de cores nos gráficos. Essa barra representa a variação dos valores do gráfico. Ex: mesh(z), colorbar;