Você está na página 1de 169

Curso de

MATLAB para
Engenharia Elétrica
Instrutora:
Patrícia Rodrigues
Engenheira Eletricista - UFERSA

Realização: Apoio:
Metodologia

Exercícios “hands on”

Carga Horária: 05 dias (04H/dia) = 20H


29/01/2018 à 02/02/2018 de 07H50 às 11H50

Certificado - Participação com 75% da presença


CONTEÚDO

Introdução ao ambiente MATLAB

Operações Básicas e Expressões Lógicas

Matrizes e Vetores

Tipos de Dados

Gráficos Bi e Tridimensionais
Introdução ao MATLAB

MATLAB = MATrix LABoratory

Inicialmente escrito em FORTRAN;


Criado no fim dos anos 1970 por Cleve Moler da Universidade do México;
Novo MATLAB foi reescrito em C por Jack Little e Steve Bangert da
Universidade de Stanford. E ambos com Moler, em 1984, fundaram a
MathWorks;
Várias plataformas: Win, Unix, Linux, Macintosh.

MATLAB para Engenharia Elétrica 4


Introdução ao MATLAB

Linguagem de programação de alto nível;


Software: programação e simulação;
Calculadora científica completa;
Executar sequências de comandos;
Fazer programas;
Fazer simulações e gráficos;
Interpretador: executa linha após linha;
Organiza os dados no formato de matrizes e vetores.

MATLAB para Engenharia Elétrica 5


Introdução ao MATLAB

MATLAB para Engenharia Elétrica 6


Introdução ao MATLAB

MATLAB para Engenharia Elétrica 7


Introdução ao MATLAB

Porque usar o MATLAB?


Sistemas Genéricos;
Processamento de Imagens;
Cálculos Numéricos Simples.

MATLAB para Engenharia Elétrica 8


Introdução ao MATLAB

Porque usar o MATLAB?


Melhor Ferramenta para desenvolver sistemas que exigem uma matemática
computacional sofisticada.

MATLAB para Engenharia Elétrica 9


Introdução ao MATLAB

MATLAB no Currículo Acadêmico - Livros

MATLAB para Engenharia Elétrica 10


Introdução ao MATLAB

Alternativas open sources para o MATLAB

MATLAB para Engenharia Elétrica 11


Introdução ao MATLAB
A tela do MATLAB está organizada da seguinte forma:

WorkSpace – Área de Trabalho,


mostra todas as variáveis
utilizadas no programa.

Command History – Mostra o


histórico de comandos dados ao
MATLAB.

MATLAB para Engenharia Elétrica 12


Introdução ao MATLAB
A tela do MATLAB está organizada da seguinte forma:

Current Folder –
Escolher o diretório onde
serão armazenados os
programas desenvolvidos.

Command Window – Janela de comandos


(escrever e executar).

MATLAB para Engenharia Elétrica 13


Ambiente MATLAB

Barras de Ferramentas do MATLAB


Save Workspace: salva dados da área de trabalho;
New Shortcut;
Save: salva arquivo;
Cut: recorta dados;
Copy: copia dados;
Paste: cola dados;
Undo: desfaz operação;
Redo: refaz operação;
Switch Windows;
Help: abre help browser.

MATLAB para Engenharia Elétrica 14


Ambiente MATLAB

Menus Importantes do MATLAB


Menu File: manipulação de arquivos
• New: criação de arquivos do Matlab
• Script: abre o editor de programa (edit);
• Figure: abre janela de figura.
• Model: abre o Simulink.
• GUI: abre editor de interface gráfica.
• Open: abre arquivos do Matlab.
• Close: fecha a janela corrente.
• Import Data: importa variáveis salvas.
MATLAB para Engenharia Elétrica 15
Ambiente MATLAB

Teclas de Edição

MATLAB para Engenharia Elétrica 16


Ambiente MATLAB

Comandos de Informação

MATLAB para Engenharia Elétrica 17


Ambiente MATLAB

help
Propósito: Ajuda em tempo real (on-line). O texto é apresentado na tela da
linha de comando. Fornece informações sobre a função especificada pelo
nome da função.

Sintaxe:
help nome_da_função

Exemplo:
>> help plot

MATLAB para Engenharia Elétrica 18


Ambiente MATLAB

helpwin
Propósito: Ajuda em tempo real (on-line). O texto é apresentado em uma
janela de navegação separada. É aberta uma janela com opções para
escolha do nome e categoria da função.

Sintaxe:
helpwin

Exemplo:
>> helpwin

MATLAB para Engenharia Elétrica 19


Ambiente MATLAB

ver
Propósito: informa as versões do MATLAB, SIMULINK e toolboxes.

Sintaxe:
ver

Exemplo:
>> ver

MATLAB para Engenharia Elétrica 20


Ambiente MATLAB

version
Propósito: informa as versões do MATLAB.

Sintaxe:
version

Exemplo:
>> version

MATLAB para Engenharia Elétrica 21


Ambiente MATLAB

demo
Propósito: executa programas de demonstração desenvolvidos em
ambiente MATLAB.

Sintaxe:
demo

Exemplo:
>> demo

MATLAB para Engenharia Elétrica 22


Ambiente MATLAB

whatsnew
Propósito: executa Ajuda em tempo real (on-line). O texto é apresentado
em uma janela de navegação separada.

Sintaxe:
whatsnew tipo_de_função

Exemplo:
>> whatsnew MATLAB; whatsnew general

MATLAB para Engenharia Elétrica 23


Ambiente MATLAB

bench
Propósito: executa um conjunto de funções MATLAB com a finalidade de
avaliar o desempenho do processador atual utilizado em relação a outros
processadores.
Sintaxe:
bench

Exemplo:
>> bench

MATLAB para Engenharia Elétrica 24


Ambiente MATLAB

Comandos de Operação com a


Memória da Área de Trabalho
(Workspace)

MATLAB para Engenharia Elétrica 25


Ambiente MATLAB

Criando variáveis

MATLAB para Engenharia Elétrica 26


Ambiente MATLAB

who
Propósito: lista as variáveis atuais.

Sintaxe:
who

Exemplo:
>> who

MATLAB para Engenharia Elétrica 27


Ambiente MATLAB

whos
Propósito: lista as variáveis atuais, suas dimensões e memória que cada
uma ocupa.

Sintaxe:
whos

Exemplo:
>> whos

MATLAB para Engenharia Elétrica 28


Ambiente MATLAB

clear
Propósito: limpa completamente a memória, função ou variável.

Sintaxe:
clear

Exemplo:
>> clear ufersa

MATLAB para Engenharia Elétrica 29


Ambiente MATLAB

pack
Propósito: desfragmenta a memória da área de trabalho. pack reúne todas
as variáveis em um segmento ou páginas adjacentes na memória RAM
com a finalidade de otimizar o uso da memória.

Sintaxe:
pack

Exemplo:
>> pack

MATLAB para Engenharia Elétrica 30


Ambiente MATLAB

save
Propósito: salva as variáveis da memória da área de trabalho em arquivo.

Sintaxe:
save fname

MATLAB para Engenharia Elétrica 31


Ambiente MATLAB

load
Propósito: carrega as variáveis de um arquivo para a memória da área de
trabalho.

Sintaxe:
load fname

MATLAB para Engenharia Elétrica 32


Ambiente MATLAB

quit
Propósito: encerra a sessão de trabalho do MATLAB.

Sintaxe:
quit

MATLAB para Engenharia Elétrica 33


Ambiente MATLAB

Comandos de Operação com


Funções e Comandos

MATLAB para Engenharia Elétrica 34


Ambiente MATLAB

what
Propósito: lista os nomes de arquivos de funções e comandos de um grupo
específico do MATLAB.

Sintaxe:
what name

Exemplo:
>> what general

MATLAB para Engenharia Elétrica 35


Ambiente MATLAB

type
Propósito: lista o conteúdo de um arquivo de comandos do MATLAB.

Sintaxe:
type arq

MATLAB para Engenharia Elétrica 36


Ambiente MATLAB

edit
Propósito: edita arquivo do MATLAB.

Sintaxe:
edit arq

MATLAB para Engenharia Elétrica 37


Ambiente MATLAB

lookfor
Propósito: busca a palavra-chave em todos os arquivos contidos no
caminho do MATLAB.

Sintaxe:
lookfor palavra

Exemplo:
>> lookfor matrix

MATLAB para Engenharia Elétrica 38


Ambiente MATLAB

which
Propósito: identifica e localiza arquivo.

Sintaxe:
which palavra

Exemplo:
>> which sin

MATLAB para Engenharia Elétrica 39


Ambiente MATLAB

Comandos de Operação com o


Caminho de Diretórios

MATLAB para Engenharia Elétrica 40


Ambiente MATLAB

path
Propósito: verifica ou define o caminho de diretórios.

Sintaxe:
path

Exemplo:
>> path

MATLAB para Engenharia Elétrica 41


Ambiente MATLAB

addpath
Propósito: adiciona diretórios ao caminho.

Sintaxe:
addpath nome

MATLAB para Engenharia Elétrica 42


Ambiente MATLAB

rmpath
Propósito: remove diretórios do caminho.

Sintaxe:
rmpath nome

edipath
Propósito: edita diretórios.

MATLAB para Engenharia Elétrica 43


Ambiente MATLAB

Comandos de Operação com o


Sistema Operacional

MATLAB para Engenharia Elétrica 44


Ambiente MATLAB

cd
Propósito: altera o diretório de trabalho atual.

Sintaxe:
cd diretório

Exemplo:
>> cd; cd\help

MATLAB para Engenharia Elétrica 45


Ambiente MATLAB

pwd
Propósito: exibe o diretório de trabalho atual.

Sintaxe:
pwd

MATLAB para Engenharia Elétrica 46


Ambiente MATLAB

dir
Propósito: lista os arquivos do diretório atual.

Sintaxe:
dir

Exemplo:
>> dir

MATLAB para Engenharia Elétrica 47


Ambiente MATLAB

delete
Propósito: exclui arquivo do diretório.

Sintaxe:
delete arq

MATLAB para Engenharia Elétrica 48


Ambiente MATLAB

dos
Propósito: executa comando do MS-DOS.

Sintaxe:
dos comando

MATLAB para Engenharia Elétrica 49


Ambiente MATLAB

computer
Propósito: definir o tipo de computador em uso.

Sintaxe:
computer

Exemplo:
>> computer

MATLAB para Engenharia Elétrica 50


Ambiente MATLAB

web
Propósito: abrir página na internet ou arquivo html com o browser padrão
do sistema.

Sintaxe:
web arquivo

Exemplo:
>> web http://www.mathworks.com

MATLAB para Engenharia Elétrica 51


Ambiente MATLAB

web
Propósito: abrir página na internet ou arquivo html com o browser padrão
do sistema.

Sintaxe:
web arquivo

Exemplo:
>> web http://www.mathworks.com

MATLAB para Engenharia Elétrica 52


Operações Básicas e
Expressões Lógicas
Operações Aritméticas

MATLAB para Engenharia Elétrica 53


Operações Básicas e
Expressões Lógicas

Operações Relacionais

MATLAB para Engenharia Elétrica 54


Operações Básicas e
Expressões Lógicas

Operações Lógicas

MATLAB para Engenharia Elétrica 55


Operações Básicas e
Expressões Lógicas

Regras para construção de variáveis

MATLAB para Engenharia Elétrica 56


Operações Básicas e
Expressões Lógicas

Variáveis predefinidas do MATLAB

MATLAB para Engenharia Elétrica 57


Operações Básicas e
Expressões Lógicas

Comentários e Pontuações

MATLAB para Engenharia Elétrica 58


Operações Básicas e
Expressões Lógicas
Algumas Funções Matemáticas

MATLAB para Engenharia Elétrica 59


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 60


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 61


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 62


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 63


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 64


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 65


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 66


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 67


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 68


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 69


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 70


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 71


Revisão Rápida de Matrizes

MATLAB para Engenharia Elétrica 72


Linhas de Comando

MATLAB para Engenharia Elétrica 73


Linhas de Comando

MATLAB para Engenharia Elétrica 74


Linhas de Comando

MATLAB para Engenharia Elétrica 75


Linhas de Comando

Funções Elementares Predefinidas no MATLAB

MATLAB para Engenharia Elétrica 76


Matrizes e Vetores

Como definir as matrizes ?

Escolher o nome da matriz


seguido de =[]
Separar os elementos da linha
por espaços

Separar os elementos da coluna


por ;
>> Mt = [1 2;3 4]

MATLAB para Engenharia Elétrica 77


Matrizes e Vetores

Exemplo de uma matriz 3x3:


>> m = [23 2 4;12 1 34;4 5 8]

Mão na massa...
1. Crie uma matriz 3x3 (escolha os elementos)
2. Crie uma matriz 4x4 (escolha os elementos)

MATLAB para Engenharia Elétrica 78


Matrizes e Vetores

Concatenação de matrizes (união)

Exemplo:
>> m = [1 2 3]
>> n = [10 20 30;40 50 60]
>> p = [m;n] % Vertical
>> p = [m,n] % Horizontal

MATLAB para Engenharia Elétrica 79


Matrizes e Vetores

Vetores, como definir ?

Da mesma forma que matrizes


Obs: uma coluna ou uma linha

MATLAB para Engenharia Elétrica 80


Matrizes e Vetores

Vetores, como definir - Exemplos


Exemplo:
>> v1 = [0 2 3 4 5]
>> v2 = [1;3;4]

Mão na massa...
1. Crie um vetor de uma linha com 6 elementos
2. Crie um vetor de uma coluna com 4 elementos

MATLAB para Engenharia Elétrica 81


Matrizes e Vetores

Vetores Sequenciais

São vetores com Crescimento ou


Decrescimento fixo

Sintaxe
Nome = [valorini:incr:valorfinal]

MATLAB para Engenharia Elétrica 82


Matrizes e Vetores

Vetores Sequenciais
Exemplo:
>> v1 = [0:2:10]
>> v2 = [30:-3:10]

Mão na massa...
1. Criar um vetor de 0 até 15 com incremento 1
2. Criar um vetor de -10 até 4 com decremento 2

MATLAB para Engenharia Elétrica 83


Matrizes e Vetores

Indexação (posição) em Vetores e Matrizes

Os índices mostram ao posições dos elementos


de uma matriz.

Sintaxe

Matrizes NomeDaMatriz(linha,coluna)

Vetores NomeDoVetor(posição)

MATLAB para Engenharia Elétrica 84


Matrizes e Vetores

Indexação (posição) em Vetores e Matrizes


Exemplo:
>> a = [10 2.2 3;1 8 8.2;9 7.2 5]
>> a(2,2)
>> a(3,2)
Mão na massa...
1. Acesse os seguintes elementos da matriz “a”
elemento = 8.2
elemento = 10
MATLAB para Engenharia Elétrica 85
Matrizes e Vetores

Intervalos de Indexação em Matrizes

Partes menores da matriz (somente linha e coluna)

Sintaxe

Linha Fixa NomeDaMatriz(linha,cini:cfim)

Coluna Fixa NomeDaMatriz(lini:lfim,coluna)

MATLAB para Engenharia Elétrica 86


Matrizes e Vetores

Intervalos de Indexação em Matrizes


Exemplo:
10 3 4
>> a(1,1:3)

a = 12 5 7 
>> a(2:3,1)

Mão na massa...  3 1 9


1. Acesse os elementos
5 e 7
1 e 9
MATLAB para Engenharia Elétrica 87
Matrizes e Vetores

Defina as seguintes matrizes

Exemplo:
>> a = [1 2;3 4]
>> b = [5 6;7 8]
>> c = [1 2 3;4 5 6;7 8 9]

MATLAB para Engenharia Elétrica 88


Matrizes e Vetores

Somando Matrizes:

Soma: +
>> a + b
>> a + c
Subtraindo Matrizes:

Subtração: -
>> a - b
>> a - c
MATLAB para Engenharia Elétrica 89
Matrizes e Vetores

Multiplicando Matrizes:

Multilicação: *
>> a * b
>> a * c
Multiplicando cada elemento das matrizes:
Multiplicação escalar: .*
>> a .* b

MATLAB para Engenharia Elétrica 90


Matrizes e Vetores

Divisão e Inversa de Matrizes:


Divisão matricial: /
>> a/b
>> a*inv(b)
Dividindo cada elemento das matrizes:
Divisão escalar: ./
>> a ./ b

MATLAB para Engenharia Elétrica 91


Matrizes e Vetores

Potência de Matrizes:

Potência: ^
>> a^3
Potência para cada elemento das matrizes:

Potência escalar: .^
>> a.^b

MATLAB para Engenharia Elétrica 92


Matrizes e Vetores

Precedência em Matrizes:
Usada para definir qual operação será efetuada primeiro
Precedência com números: ( )
>> 2+4*3
>> (2+4)*3

Precedência com Matrizes: ( )


>> a+b^2
>> (a+b)^2
MATLAB para Engenharia Elétrica 93
Matrizes e Vetores

FUNÇÃO : eye – criação de matriz identidade


SINTAXE: eye(ordem)
EXEMPLO: >> eye(4)

FUNÇÃO : zeros – criação de matriz com zeros


SINTAXE: zeros(linha,coluna)
EXEMPLO: >> zeros(4,3)

MATLAB para Engenharia Elétrica 94


Matrizes e Vetores

FUNÇÃO : ones – criação de matriz com uns


SINTAXE: ones(linha,coluna)
EXEMPLO: >> ones(4,5)

FUNÇÃO : rand – criação de matriz aleatória


SINTAXE: rand(linha,coluna)
EXEMPLO: >> rand(1,4)

MATLAB para Engenharia Elétrica 95


Matrizes e Vetores

FUNÇÃO : det – determinamte de uma matriz


SINTAXE: det(matriz)
EXEMPLO: >> det(a)

FUNÇÃO : inv – inversa de uma matriz


SINTAXE: inv(matriz)
EXEMPLO: >> inv(a)

MATLAB para Engenharia Elétrica 96


Matrizes e Vetores

FUNÇÃO : size – informa o número de linhas e colunas


SINTAXE: size(matriz)
EXEMPLO: >> size(a)

FUNÇÃO : length – informa o tamanho máximo entre linhas


e colunas
SINTAXE: lenght(matriz)
EXEMPLO: >> length(a)

MATLAB para Engenharia Elétrica 97


Matrizes e Vetores

FUNÇÃO : triu – informa a matriz triangular superior


SINTAXE: triu(matriz) 10 3 4
EXEMPLO: >> triu(a) a = 12 5 7 
zero  3 1 9 

FUNÇÃO : tril – informa a matriz triangular inferior


SINTAXE: tril(matriz) 10 3 4 zero
EXEMPLO: >> tril(a) a = 12 5 7 
 3 1 9 
MATLAB para Engenharia Elétrica 98
Matrizes e Vetores

FUNÇÃO : fliplr – inverte os elementos da esq. para dir.


SINTAXE: fliplr(matriz)
EXEMPLO: fliplr(a)

FUNÇÃO : flipud – inverte os elementos de cima para baixo


SINTAXE: flipud(matriz)
EXEMPLO: flipud(a)

MATLAB para Engenharia Elétrica 99


Tipos de dados

Vamos ver dois tipos de dados:

Cadeia de caracteres (string)

Célula (cell array)

MATLAB para Engenharia Elétrica 100


Tipos de dados

Cadeia de Caracteres

É conhecida como texto.

Sintaxe

Nome = 'texto'

MATLAB para Engenharia Elétrica 101


Tipos de dados

Exemplo:
>> txt1 = 'curso'
>> txt2 = 'matlab'

MATLAB para Engenharia Elétrica 102


Tipos de dados

Permite armazenamento de diferentes tipos em uma única estrutura


identificada por um único nome.

Sintaxe – Criação da Célula


>> NomeDaCelula = cell(ordem)

Sintaxe – Indexação da Célula


>> NomeDaCelula(linha,coluna)={[valores]}

MATLAB para Engenharia Elétrica 103


Tipos de dados

Exemplo:
1. Suponha que queremos criar os seguintes dados:
• Matriz identidade 3x3
• Cadeia de caracteres ‘Alunos Matlab’
• o número 2
• Vetor de 0 até 6

MATLAB para Engenharia Elétrica 104


Tipos de dados

Exemplo:

>> teste = cell(2);


>> teste(1,1)={[eye(3)]};
>> teste(1,2)={['Alunos Matlab']};
>> teste(2,1)= {[2]};
>> teste(2,2)={[0:1:6]};
>> teste

MATLAB para Engenharia Elétrica 105


Tipos de dados

Acesso aos dados da Célula:

• A indexação é feita combinado “{}” e “()”

• ‘()’ retorna o elemento como cell array

Exemplo:
>> temp = teste(1,1)
>> temp = teste(1,2)

MATLAB para Engenharia Elétrica 106


Tipos de dados

Acesso aos dados da Célula:

•‘{}’ retorna o elemento no seu tipo original

Exemplo:
>> temp = teste{1,1}
>> temp = teste{1,2}

MATLAB para Engenharia Elétrica 107


Gráficos Bi e Tridimensionais

A construção de gráficos no MATLAB é mais uma das


facilidades do sistema;
Através de comandos simples pode-se obter gráficos
bidimensionais ou tridimensionais com qualquer tipo de escala e
coordenada.

MATLAB para Engenharia Elétrica 108


Gráficos Bi e Tridimensionais

O MATLAB tem como um de seus pontos mais fortes a


construção e elaboração de gráficos, pois oferece muitos recursos
de apresentação de resultados em formatos gráficos;
Em MATLAB a exibição de dados em forma de gráficos
significa plotagem este termo é muito utilizado nos livros que
tratam deste assunto;
O MATLAB tem objetos gráficos e funções de plotagem que
permitem a criação e manipulação de gráficos de diversos tipos
com muita facilidade.

MATLAB para Engenharia Elétrica 109


Gráficos Bi e Tridimensionais

Passos para construção de gráficos:


1. Passo: Preparação dos Dados
2. Passo: Seleção de Janela ou Subjanela de exibição.
3. Passo: Chamada das funções de ploagem.
4. Passo: Configuração de tipos de linha e marcadores.
5. Passo: Configuração de eixos e grades.
6. Passo: Configuração de títulos e anotações.

MATLAB para Engenharia Elétrica 110


Gráficos Bi e Tridimensionais

1. Passo: Preparação dos Dados


Definimos os valores das variáveis;
Definimos a função que será plotada.

Exemplo:
x = 0:0.1:2*pi; % x varia de 0 até 2pi
y = sin(x); % definição da função

MATLAB para Engenharia Elétrica 111


Gráficos Bi e Tridimensionais

2. Passo: Seleção de Janela ou Subjanela de exibição.


Devemos selecionar uma janela de figura pelo comando

Exemplo: figure(n); % n=1,2,3,...

3. Passo: Chamada das funções de ploagem.


Nesta devemos chamar as funções de plotagem. Este item será
detalhado mais adiante.

Exemplo: plot(x,y) % função básica de plotagem

MATLAB para Engenharia Elétrica 112


Gráficos Bi e Tridimensionais

4. Passo: Configuração de tipos de linha e marcadores.


Aqui escolhemos os tipos de linhas e marcadores.

5 e 6. Passo: Configuração de eixos e grades. Configuração de títulos e


anotações.
Neste passo podemos configurar os eixos e grades e os título e
anotações através de menus.

MATLAB para Engenharia Elétrica 113


Gráficos Bi e Tridimensionais

FUNÇÃO : plot – plota as colunas de um vetor versus os


índices de cada elemento, se o vetor for real. Se for complexo,
plota a parte real pela parte imaginária de cada elemento.
SINTAXE: plot(X); plot(X,Y);

EXEMPLO:
>> t=0:pi/50:10*pi;
>> plot(t,sin(t))

MATLAB para Engenharia Elétrica 114


Gráficos Bi e Tridimensionais

Exemplo de Criação de Gráfico:


Queremos plotar o gráfico de sen(x)

Exemplo - Passos:
>> x=-2*pi:0.1:2*pi; % passo 1
>> y=sin(x); % passo 1
>> figure(1); % passo 2
>> plot(x,y); % passo 3

MATLAB para Engenharia Elétrica 115


Gráficos Bi e Tridimensionais

Após estes 3 passos teremos no MATLAB a seguinte visualização

MATLAB para Engenharia Elétrica 116


Gráficos Bi e Tridimensionais

Para os passos seguintes é necessário utilizar os argumentos das funções de


plotagem e os menus:

Exemplo:
• Cor amarela e marcador *
>> plot(x,y,'m*') % verifique no Matlab

• Gráfico com grade


>> grid; % verifique no Matlab

MATLAB para Engenharia Elétrica 117


Gráficos Bi e Tridimensionais

Funções de Plotagem

plot (): função básica de plotagem

Sintaxe: plot(x,y,’FMT’);

Onde: x – variavél no eixo x


y – variavél no eixo y

FMT – fonte, marcador e tipo de linha

MATLAB para Engenharia Elétrica 118


Gráficos Bi e Tridimensionais

Tipos de FMT – fonte, marcador e tipo de linha


Cor Marcador Tipo de linha
Amarela (y) Ponto ( . ) Pontilhada ( : )
Azul (b) Círculo ( o ) Ponto traço ( -. )
Vermelha (r) Cruz (+) Tracejada ( -- )
Verde (g) Quadrado (s) Sólida (-)
Preta (k) Losango (d)
Triangulo (<,>)

MATLAB para Engenharia Elétrica 119


Gráficos Bi e Tridimensionais

Exemplos - Tipos de FMT


Plotar os seguintes gráficos:
1. x2 + x3 : cor verde; marcador x’s; tipo de linha ponto traço
>> x=[-30:0.5:30];
>> y=[x.^3+x.^2];
>> plot(x,y,‘gx-.')
2. x2 : cor vermelha; marcador losango; tipo de linha tracejada
>> mão na massa...

MATLAB para Engenharia Elétrica 120


Gráficos Bi e Tridimensionais

Exemplos - Tipos de FMT


Plotar os seguintes gráficos:
3. cos * sen:cor vermelha; marcador losango; tipo de linha
tracejada
>> x =[-2*pi:0.1:2*pi];
>> y=[sin(x).*cos(x)];

MATLAB para Engenharia Elétrica 121


Gráficos Bi e Tridimensionais

Mão na massa...
Plotar os seguintes gráficos:
Seno de x: cor azul; marcador cruz; tipo de linha ponto traço

3x3 + x2 – x + 3: cor vermelha; marcador losango; tipo de linha


tracejada

Cosseno de x: : cor preta; marcador losango; tipo de linha


ponto

MATLAB para Engenharia Elétrica 122


Gráficos Bi e Tridimensionais

Gráficos em Conjunto na mesma Janela:

Este tipo de sintaxe é utilizada quando queremos plotar gráficos na


mesma janela.

Sintaxe: plot(x1,y1,’FMT1’,x2,y2,’FMT2’, ...)

MATLAB para Engenharia Elétrica 123


Gráficos Bi e Tridimensionais

Gráficos em Conjunto na mesma Janela - Exemplo:


Exemplo 1: plotar em conjunto os gráficos de sen e cos
>> x=[-2*pi:0.1:2*pi];
>> plot(x,sin(x),x,cos(x))

Exemplo 2: plotar em conjunto os gráficos de x2 e 3x2


>> x=[-20:0.3:20];
>> plot(x,x.^2,x,3*x.^2)

MATLAB para Engenharia Elétrica 124


Gráficos Bi e Tridimensionais

Gráficos em Conjunto na mesma Janela – Exemplo FMT:


Exemplo 3: Fazer o exemplo 1 com
sen: cor preta; marcador losango; linha ponto traço
cos: cor azul; marcador x’s; tipo de linha ponto
>> x=[-2*pi:0.1:2*pi];
>> plot(x,sin(x),’kd-.’,x,cos(x),’bx:’)

MATLAB para Engenharia Elétrica 125


Gráficos Bi e Tridimensionais

Gráficos em Conjunto na mesma Janela – Exemplo FMT:

Mão na massa...
Fazer o exemplo 2 com
x2 : cor preta; marcador losango; linha ponto traço
3x2 : cor preta; marcador losango; linha ponto traço

MATLAB para Engenharia Elétrica 126


Gráficos Bi e Tridimensionais

Gráficos em Conjunto na mesma Janela – Exemplo FMT:

Mão na massa...
Plotar os seguintes gráficos na mesma janela:
3x2 : cor preta; marcador losango; linha solida
4x2 + 100: cor azul; marcador ponto; linha solida
com x variando entre –10 e 10

MATLAB para Engenharia Elétrica 127


Gráficos Bi e Tridimensionais

Gráficos em Conjunto na mesma Janela – Exemplo FMT:

Mão na massa...
Plotar os seguintes gráficos na mesma janela:
10x3 + x + 10 : cor azul; marcador losango; linha solida
9x3 + x2 + 20: cor preta; marcador x’s; linha solida
com x variando entre –10 e 10

MATLAB para Engenharia Elétrica 128


Gráficos Bi e Tridimensionais

Comandos Gerais de configuração de gráficos:


Axis: para configurar os eixos em pontos máx. e mín.
Sintaxe: axis([Xminimo Xmaximo Yminimo Ymaximo])

Exemplo: verifique o seguinte gráfico


>> x = [-10:0.1:10];
>> plot(x,x.^2);
>> axis([-5 5 0 10]);

MATLAB para Engenharia Elétrica 129


Gráficos Bi e Tridimensionais

Comandos Gerais de configuração de gráficos:


Zoom: Amplia ou contrai o gráfico.
Sintaxe: controlado pelo mouse
botão direito: contrai
botão esquerdo: Amplia

MATLAB para Engenharia Elétrica 130


Gráficos Bi e Tridimensionais

Comandos Gerais de configuração de gráficos:


Grid: mostra uma grade para o gráfico
Sintaxe: grid(‘on’) % habilita a grade
grid(‘off’) % desabilita a grade

Box: controla a caixa de contorno do gráfico


Sintaxe: box(‘on’) % habilita a caixa
box(‘off’) % desabilita a caixa

MATLAB para Engenharia Elétrica 131


Gráficos Bi e Tridimensionais

Exemplo: verifique o seguinte gráfico com grid e box


>> x = [-10:0.1:10];
>> plot(x,x.^2);
>> grid(‘on’);
>> box(‘off’)

MATLAB para Engenharia Elétrica 132


Gráficos Bi e Tridimensionais

Comandos Gerais de configuração de gráficos:


Hold: habilita e desabilita os gráficos na mesma janela
Sintaxe: hold(‘on’) % habilita
hold(‘off’) % desabilita

Exemplo: verifique o seguinte gráfico


>> x=[-2*pi:0.1:2*pi];
>> hold(‘on’);
>> plot(x,sin(x),’r’);
>> plot(x,cos(x),’k’);

MATLAB para Engenharia Elétrica 133


Gráficos Bi e Tridimensionais

Comandos Gerais de configuração de gráficos:


Label: configuração dos textos no gráfico
Sintaxe: xlabel(' texto ') % texto eixo x
ylabel(' texto ') % texto eixo y
title(' texto ') % título do gráfico
legend(' texto ') % legenda do gráfico

MATLAB para Engenharia Elétrica 134


Gráficos Bi e Tridimensionais

Label: Exemplo
>> x = 0:0.1:2*pi;
>> y=sin(x);
>> z=cos(x);
>> plot(x,y, ' b:s ', x, z, ' rv-- ');
>> title(' Gráfico com Legenda ');
>> xlabel('Eixo x ');
>> ylabel('Seno e Cosseno');
>> legend('Seno', 'Cosseno');
MATLAB para Engenharia Elétrica 135
Gráficos Bi e Tridimensionais

Mão na massa...

Faça o gráfico da função y= x3 -36x quando -8≤x≤8.


Faça o gráfico da função y=f(ɵ) sendo y=sin(ɵ) e 0≤ɵ≤2π.
A matriz R apresenta os dados obtidos em um experimento de MRVU
nos laboratórios de Física.

A primeira linha representa o tempo t em [s] e a segunda linha representa


o deslocamento em [cm] de um móvel. Faça o gráfico x = f(t) com linhas
pontilhadas, na cor magenta e ressaltando os círculos.

MATLAB para Engenharia Elétrica 136


Gráficos Bi e Tridimensionais

Comandos Gerais de configuração de gráficos:


Subplot: Gera vários eixos em uma mesma janela
Sintaxe: subplot(m,n,p)
% m – Quantidade de gráficos em uma linha
% n – Quantidade de gráficos em uma coluna
% p – índice do gráfico

MATLAB para Engenharia Elétrica 137


Gráficos Bi e Tridimensionais

Subplot: Exemplo

>> subplot(2,1,1),ezplot('sin(x)')
>> subplot(2,1,2),ezplot('exp(x)')

MATLAB para Engenharia Elétrica 138


Gráficos Bi e Tridimensionais

Subplot: Exemplo
>> x = [-10:0.1:10];
>> subplot(2,2,1);
>> plot(x,x.^2);
>> subplot(2,2,2);
>> plot(x,x.^3);

MATLAB para Engenharia Elétrica 139


Gráficos Bi e Tridimensionais

Mão na massa...

Plote os gráficos das funções abaixo e visualize-as numa mesma tela


usando o comando subplot:

MATLAB para Engenharia Elétrica 140


Gráficos Bi e Tridimensionais

Funções Básicas para Gráficos 3D:


Mesh e Surf : plotagem de superfície 3D
Sintaxe:
>> x = [vetor]
>> y = [vetor]
>> [X,Y] = meshgrid(x,y)
>> Z = superfície em função de X e Y

Para mesh >> mesh(X,Y,Z);


Para surf >> surf(X,Y,Z);

MATLAB para Engenharia Elétrica 141


Gráficos Bi e Tridimensionais

Exemplo Mesh e Surf: plotar a seguinte superfície 3D


Superfície 1: z = x2 + 2 de –3 a 3 variando de 0.6
>> x = [-3:0.6:3];
>> y = [-3:0.6:3];
>> [X,Y] = meshgrid(x,y);
>> Z = X.^2+2;
>> mesh(X,Y,Z);
>> surf(X,Y,Z);
>> grid;
MATLAB para Engenharia Elétrica 142
Gráficos Bi e Tridimensionais

Exemplo Mesh e Surf: plotar a seguinte superfície 3D


Superfície 2: z = cos(x)+sen(y) de – pi a pi variando de 0.5
>> x = [-pi:0.5:pi];
>> y = [-pi:0.5:pi];
>> [X,Y] = meshgrid(x,y);
>> Z = cos(X)+sin(Y);
>> mesh(X,Y,Z);
>> surf(X,Y,Z);
>> grid;
MATLAB para Engenharia Elétrica 143
Gráficos Bi e Tridimensionais

Exemplo Mesh e Surf: plotar a seguinte superfície 3D


Superfície 3: z = 2cos(x)+3sen(y) de –pi a pi variando de 0.5
>> x = [-pi:0.5:pi];
>> y = [-pi:0.5:pi];
>> [X,Y] = meshgrid(x,y);
>> Z = 2*cos(X)+3*sin(Y);
>> mesh(X,Y,Z);
>> surf(X,Y,Z);
>> grid;
MATLAB para Engenharia Elétrica 144
Gráficos Bi e Tridimensionais

Exemplo Mesh e Surf: plotar a seguinte superfície 3D


Superfície 4: z = 4x2 + 6y2 de –3 a 3 variando de 0.5
>> x = [-3:0.5:3];
>> y = [-3:0.5:3];
>> [X,Y] = meshgrid(x,y);
>> Z = 4*X.^2 + 6*Y.^3;
>> mesh(X,Y,Z);
>> surf(X,Y,Z);
>> grid;
MATLAB para Engenharia Elétrica 145
Gráficos Bi e Tridimensionais

FUNÇÃO : ezplot – plota a expressão simbólica f(x) no


domínio padrão -2π<x<2π.
SINTAXE: ezplot(t) → Plota f(x).

EXEMPLO:
>> ezplot('sin(x)')

MATLAB para Engenharia Elétrica 146


Gráficos Bi e Tridimensionais

FUNÇÃO : line – cria uma linha no gráfico atual.


SINTAXE: line(X,Y); line(X,Y,Z);

EXEMPLO:
>> x= -2:0.01:5;
>> line(x,exp(x))

MATLAB para Engenharia Elétrica 147


Gráficos Bi e Tridimensionais

FUNÇÃO : stem – plota uma sequência de dados discretos.


SINTAXE: stem(X); stem(X,Y);

EXEMPLO:
>> x = -4:4;
>> y = exp(x);
>> stem(x,y)

MATLAB para Engenharia Elétrica 148


Gráficos Bi e Tridimensionais

FUNÇÃO : compass – plota vetores de componentes


cartesianas a partir da origem de um gráfico polar.
SINTAXE: compass(U,V)

EXEMPLO:
>> compass(2,3)

MATLAB para Engenharia Elétrica 149


Gráficos Bi e Tridimensionais

FUNÇÃO : ezplot3 – plota uma curva espacial de três


equações paramétricas no domínio padrão 0 < t < 2π.
SINTAXE: ezplot3(x,y,z)

EXEMPLO:
>> ezplot3('cos(t)','sin(t)','t')

MATLAB para Engenharia Elétrica 150


Gráficos Bi e Tridimensionais

FUNÇÃO : plot3 – plota tridimensionalmente um gráfico.


SINTAXE: plot3(x,y,z)

EXEMPLO:
>> t = 0:pi/50:10*pi;
>> plot3(cos(t),sin(t),t)

MATLAB para Engenharia Elétrica 151


Gráficos Bi e Tridimensionais

FUNÇÃO : ezsurf – plota a superfície de um gráfico de


uma função de duas variáveis no domínio padrão -2π < x < 2π e
-2π < y < 2π.
SINTAXE: ezsurf(x,y,z)

EXEMPLO:
>> ezsurf('1/sqrt(x^2 + y^2)')

MATLAB para Engenharia Elétrica 152


Gráficos Bi e Tridimensionais

FUNÇÃO : bar – plota gráfico em barras.


SINTAXE: bar(x,y)

EXEMPLO:
>> x=-1.9:0.2:1.9;
>> y=exp(-x.*x);
>> bar(x,y)
>> title('Gráfico em barras')
>> set( gca, 'XTickLabel', {'Valor1', ' Valor2 ', ' Valor3
',' Valor4 '} )

MATLAB para Engenharia Elétrica 153


Gráficos Bi e Tridimensionais

FUNÇÃO : pie – plota gráfico em pizza.


SINTAXE: pie(y)

EXEMPLO:
>> y = [20, 20, 10];
>> pie( y ) ;
>> title('Gráfico em Pizza')
>> legend('Dado1', 'Dado2', 'Dado3')

MATLAB para Engenharia Elétrica 154


Gráficos Bi e Tridimensionais

FUNÇÃO : polar – plota gráficos polares.


SINTAXE: polar(x,y)

EXEMPLO:
>> x=0:0.01:2*pi;
>> y=sin(x);
>> polar(x,y);
>> title('Gráfico Polar')
>> grid on

MATLAB para Engenharia Elétrica 155


Gráficos Bi e Tridimensionais

Mão na massa...

MATLAB para Engenharia Elétrica 156


Gráficos Bi e Tridimensionais

Mão na massa...
Criando o Logo MATLAB

>> L = 160*membrane(1,100);
>> f = figure;
>> ax = axes;
>> s = surface(L);
>> s.EdgeColor = 'none';
>> view(3)
>> ax.XLim = [1 201];
>> ax.YLim = [1 201];
>> ax.ZLim = [-53.4 160];

MATLAB para Engenharia Elétrica 157


Gráficos Bi e Tridimensionais

Mão na massa...
Criando o Logo MATLAB

>> ax.CameraPosition = [-145.5 -229.7 283.6];


>> ax.CameraTarget = [77.4 60.2 63.9];
>> ax.CameraUpVector = [0 0 1];
>> ax.CameraViewAngle = 36.7;
>> ax.Position = [0 0 1 1];
>> ax.DataAspectRatio = [1 1 .9];

MATLAB para Engenharia Elétrica 158


Gráficos Bi e Tridimensionais

Mão na massa...
Criando o Logo MATLAB

>> l1 = light;
>> l1.Position = [160 400 80];
>> l1.Style = 'local';
>> l1.Color = [0 0.8 0.8];
>> l2 = light;
>> l2.Position = [.5 -1 .4];
>> l2.Color = [0.8 0.8 0];

MATLAB para Engenharia Elétrica 159


Gráficos Bi e Tridimensionais

Mão na massa...
Criando o Logo MATLAB

>> s.FaceColor = [0.9 0.2 0.2];


>> s.FaceLighting = 'gouraud';
>> s.AmbientStrength = 0.3;
>> s.DiffuseStrength = 0.6;
>> s.BackFaceLighting = 'lit';
>> s.SpecularStrength = 1;
>> s.SpecularColorReflectance = 1;
>> s.SpecularExponent = 7;
>> axis off
>> f.Color = 'black';
MATLAB para Engenharia Elétrica 160
Gráficos Bi e Tridimensionais

Mão na massa...
Objetos tridimensionais complexos

>> [verts, faces, cindex] = teapotGeometry;


>> figure
>> p =
patch('Faces',faces,'Vertices',verts,'FaceVertexCData',cindex,'FaceColor','
interp')
>> view(-151,30)
>> axis equal off
>> p.FaceAlpha = 0.3;
>> p.FaceColor = 'none';

MATLAB para Engenharia Elétrica 161


Gráficos Bi e Tridimensionais

Mão na massa...
Objetos tridimensionais complexos

>> p.FaceAlpha = 1;
>> p.FaceColor = 'interp';
>> p.LineStyle = 'none';
>> colormap(copper)
>> l = light('Position',[-0.4 0.2 0.9],'Style','infinite')
>> lighting gouraud
>> material shiny
>> l.Position = [-0.1 0.6 0.8]

MATLAB para Engenharia Elétrica 162


Gráficos Bi e Tridimensionais

Mão na massa...
Alterando a transparência das imagens

>> t = 0:0.1:2*pi;
>> x = sin(t);
>> y = cos(t);
>> figure
>> patch(x,y,'r')
>> patch(x+0.8,y,'g')
>> patch(x+0.4,y+0.8,'b‘)
>> axis square tight
>> alpha(0.3)

MATLAB para Engenharia Elétrica 163


Gráficos Bi e Tridimensionais

Mão na massa...
Alterando a transparência das imagens

>> [X,Y,Z] = peaks(20);


>> s2 = surf(X,Y,Z);
>> s2.AlphaData = gradient(Z);
>> s2.FaceAlpha = 'flat';
>> earth = imread('landOcean.jpg');
>> image(earth)
>> axis image

MATLAB para Engenharia Elétrica 164


Gráficos Bi e Tridimensionais

Mão na massa...
Alterando a transparência das imagens

>> clouds = imread('cloudCombined.jpg');


>> image(earth)
>> axis image
>> hold on
>> im = image(clouds);
>> im.AlphaData = max(clouds,[],3);
>> hold off

MATLAB para Engenharia Elétrica 165


Gráficos Bi e Tridimensionais

Mão na massa...
Alterando a transparência das imagens

>> cla
>> p1 = patch(x,y,'r');
>> axis square tight
>> p1.FaceVertexAlphaData = 0.2;
>> p1.FaceAlpha = 'flat' ;
>> p1.FaceVertexAlphaData = x';
>> p1.FaceAlpha = 'interp' ;
>> [px,py,pz] = sphere(50);

MATLAB para Engenharia Elétrica 166


Gráficos Bi e Tridimensionais

Mão na massa...
Alterando a transparência das imagens

>> cla
>> sEarth = surface(py, px ,flip(pz));
>> sEarth.FaceColor = 'texturemap';
>> sEarth.EdgeColor = 'none';
>> sEarth.CData = earth;
>> hold on
>> sCloud = surface(px*1.02,py*1.02,flip(pz)*1.02);
>> sCloud.FaceColor = 'texturemap';

MATLAB para Engenharia Elétrica 167


Gráficos Bi e Tridimensionais

Mão na massa...
Alterando a transparência das imagens

>> sCloud.EdgeColor = 'none';


>> sCloud.CData = clouds;
>> sCloud.FaceAlpha = 'texturemap';
>> sCloud.AlphaData = max(clouds,[],3);
>> hold off
>> view([80 2])
>> daspect([1 1 1])
>> axis off tight

MATLAB para Engenharia Elétrica 168


Referências

https://www.mathworks.com/products/matlab.html
MATLAB Básico – Professor Dr. Leonardo Gonsioroski
da Silva (UEMA).
Introdução ao MATLAB – Professor Dr. Waldir Sabino da
Silva Junior (UFAM).
Introdução ao Programa MATLAB com aplicações –
Professores Dr. Antônio Alves (UCG/UFG), Dr. Enes
Marra (UFG) e Dr. José Nerys (UFG).

MATLAB para Engenharia Elétrica 169