Você está na página 1de 25

Matlab - Manual para a Disciplina de Desenho Assistido por Computador

MESTRADO INTEGRADO EM ENG. ELECTROTÉCNICA E DE COMPUTADORES

Computador MESTRADO INTEGRADO EM ENG. ELECTROTÉCNICA E DE COMPUTADORES Departamento de Engenharia Electrotécnica 2009

Departamento de Engenharia Electrotécnica

2009

Índice

1 Introdução

5

1.1 Área de Trabalho

5

1.2 Bibliotecas do Matlab

5

1.3 Comandos Básicos de Matlab

6

2 Tipos de dados em Matlab

7

2.1 Matrizes

7

2.2 Constantes do Matlab

9

2.3 Variáveis do Matlab

9

2.4 Exemplos

9

3 Programação em Matlab

11

3.1 Expressões

11

3.2 Operações Básicas Sobre Matrizes

11

3.3 Controlo da Sequência do Programa

12

3.4 Funções Elementares

15

3.5 Exemplo

16

4 Ficheiros

17

4.1 O Editor do Matlab

17

4.2 Guardar Variáveis em Ficheiros

18

4.3 Ler Variáveis de Ficheiros

18

5 Visualização de Dados

19

5.1 Gráficos a Duas Dimensões

19

5.2 Gráficos a Três Dimensões

20

6 Bibliografia

25

1 Introdução

De acordo com os seus autores, o Matlab (de MATrix LABoratory) é uma linguagem de alto desempenho para computação técnica, sendo vocacionado para aplicações tão diversas como programação, desenvolvimento de algoritmos, aquisição de dados, modelização, simulação, prototipagem, análise de dados, e desenvolvimento de interfaces gráficas, entre outras.

De facto, o Matlab é uma ferramenta poderosa no âmbito da Engenharia Electrotécnica, mais concretamente na sua vertente de Desenho Assistido por Computador, englobando um ambiente de desenvolvimento, vastas bibliotecas de funções matemáticas, uma linguagem de programação de alto nível, e extensas possibilidades a nível gráfico.

O presente manual pretende servir apenas de breve introdução a esta ferramenta, estando

disponível na internet uma completíssima bibliografia (www.mathworks.com) para quem deseje

ou necessite de tirar partido das inúmeras possibilidades que oferece o Matlab.

Existem, principalmente a partir da sua versão 6, várias formas de aceder a certos comandos ou funções do Matlab, seja através de ícones, seja através de menus. Deixa-se contudo ao leitor a tarefa de explorar este aspecto.

1.1 Área de Trabalho

A área de trabalho é parte constituinte do ambiente de desenvolvimento, assim como a linha de comandos, e contém as variáveis criadas durante a sessão de Matlab. Para se visualizar todas estas variáveis, deve-se introduzir na linha de comando:

>> who

Este comando mostra todas as variáveis criadas pelo utilizador, pelo que no início de uma sessão não retornará nada, uma vez que nenhuma foi ainda criada. Note-se que os caracteres >> indicam o início da linha de comando (prompt), não constituindo parte do comando em si. Por esta razão, e visando evitar equívocos, deste ponto em diante esses caracteres serão omitidos.

A janela onde se encontra a linha de comandos é chamada a janela de comandos (command

window). O Matlab permite aceder ao historial de comandos introduzidos através das setas cima e baixo. Para se ir directamente para um comando já introduzido, pode-se escrever a sua primeira letra e então carregar na tecla cima.

1.2 Bibliotecas do Matlab

O Matlab apresenta uma série de comandos, operadores e funções primitivas, organizadas por

categorias, assim como rotinas específicas de diversas áreas da engenharia, organizadas em

bibliotecas (toolboxes). Estas categorias e bibliotecas são designadas por tópicos primários. O

comando

help

permite visualizar todos estes tópicos, que correspondem a directorias do Matlab.

Alguns tópicos primários são:

general

comandos gerais

ops

operadores e caracteres especiais

control

biblioteca de sistemas de controlo

daq

biblioteca de aquisição de dados

signal

biblioteca de processamento de sinais

nnet

biblioteca de redes neuronais

pde

biblioteca de equações às diferenças parciais

optim

biblioteca de optimização

stats

biblioteca de estatística

Outras bibliotecas abrangem campos tão variados como aquisição e processamento de imagem,

bio-informática, telecomunicações, finanças, lógica difusa, matemática simbólica, identificação

de

sistemas e realidade virtual.

O

comando

help item

fornece informação específica acerca de item. Se este for um tópico primário, então visualizar- -se-ão os conteúdos do tópico, se for um comando, então será mostrada informação detalhada sobre este.

1.3 Comandos Básicos de Matlab

Alguns comandos básicos de Matlab são

clear

apaga todas as variáveis do espaço de trabalho

clc

limpa a janela de comandos

ver

informação sobre a versão de Matlab utilizada

demo

permite visualizar demonstrações do Matlab

O operador percentagem, %, permite inserir comentários após comandos do Matlab. Tudo o que

esteja à direita desse operador será ignorado.

2

Tipos de dados em Matlab

2.1

Matrizes

Em Matlab os dados são armazenados essencialmente como matrizes. Desta forma, pode-se pensar em alguns casos particulares, nomeadamente as matrizes 1x1 – escalares – ou as formadas só por uma linha ou uma coluna – vectores. Alguns exemplos de matrizes são:

uma coluna – v ectores. Alguns exemplos de matrizes são: Matriz A , 2x3: A 

Matriz A, 2x3:

A

4

5

3

7

1

0

Escalar b , ou matriz 1x1: b   0,5  b, ou matriz 1x1: b 0,5

Matriz linha c , 1x4: c   3 c, 1x4: c 3

4

2

8

Existem várias formas de especificar matrizes, para que se possa, posteriormente, manipulá-las. Pode-se introduzir todos os valores dos seus membros, lê-las a partir de ficheiros, ou criá-las através de funções, sejam estas do Matlab sejam definidas pelo utilizador.

Para introduzir explicitamente a matriz A anteriormente definida, devem-se usar parêntesis rectos a delimitar os seus elementos. Estes serão separados por espaços dentro da mesma linha, sendo estas finalizadas por ponto e vírgula. Ou seja, na linha de comando do Matlab

introduzir-se-ia:

A=[4

3

1; 5

7

0];

O ponto e vírgula no final da instrução impede que o Matlab mostre os dados introduzidos.

Caso não se coloque, seria visualizado o seguinte:

A =

4 3

1

5 7

0

2.1.1 Matrizes Elementares

O Matlab tem definidas algumas funções que criam matrizes elementares (tópico elmat,

matrizes elementares e manipulação de matrizes).

Existem, por exemplo:

zeros: cria uma matriz em que todos os elemen tos são nulos. As possíveis formas : cria uma matriz em que todos os elementos são nulos. As possíveis formas são

zeros(N): matriz NxN de zeros : matriz NxN de zeros

zeros(N,M): matriz NxM de zeros : matriz NxM de zeros

ones: cria uma matriz em que todos os elementos são a unidade. Admite as mesmas : cria uma matriz em que todos os elementos são a unidade. Admite as mesmas formas da função zeros.

eye : matriz identidade eye(N) : matriz identidade NxN eye(N,M) : matriz NxM , com

eye: matriz identidade

eye(N): :

matriz identidade NxN

eye(N,M): matriz NxM , com 1 na diagonal e 0 nos outros elementos : matriz NxM, com 1 na diagonal e 0 nos outros elementos

2.1.2 Acesso a Elementos Individuais numa Matriz

Para aceder ao elemento da linha i, coluna j, basta simplesmente introduzir o comando A(i,j). Assim, com A(1,2)e A(2,3) obter-se-ia, respectivamente, 3 e 0.

Caso se queira aceder a um elemento fora das dimensões da matriz, o resultado será uma mensagem de erro. Por outro lado, se se definir um novo elemento, numa posição que exceda as dimensões da matriz, então esta será redimensionada, por forma a incluir esse novo elemento, sendo as novas posições preenchidas com 0. Por exemplo, fazendo A(3,5)=5, resulta em:

A =

4

3

1

0

0

5

7

0

0

0

0

0

0

0

5

2.1.3 O Operador :

O operador : (dois pontos) tem uma função muito abrangente em Matlab. Por exemplo, a instrução

d = 1:10

cria uma matriz d, linha, em que os seus elementos são

1 2

3

4

5

6

7

8

9

10

Para se obter um espaçamento não unitário entre elementos, por exemplo 0,1, desde 1 até 2, deve-se fazer:

d = 1:0.1:2

obtendo-se

1.00

1.10 1.20

1.30

1.40 1.50

1.60 1.70

1.80

1.90 2.00

Note-se que as casas decimais são separadas por um ponto. O operador : também pode ser utilizado para aceder a porções de uma matriz. Se se quisesse obter a primeira linha da matriz A, após a redefinição do ponto anterior, far-se-ia:

A(1,:)

obtendo-se

4

3

1

0

0

Para se obter a porção entre a segunda e quarta colunas, na segunda linha, o comando seria:

A(2,2:4)

e o resultado

7

0

0

2.2

Constantes do Matlab

O Matlab fornece algumas constantes muito úteis, nomeadamente:

pi

i

j

eps

realmin

: 3.14159265358979

: unidade imaginária,

 1
 1

: o mesmo que i

: precisão relativa da vírgula flutuante, isto é, a distância de 1 ao próximo decimal

: menor número decimal definido

realmax

Inf

: maior número decimal definido

: infinito, valor que é gerado após uma divisão por zero ou numa operação que

excede realmax

NaN

2.3

: Not-a-number, valor gerado quando se tenta calcular 0/0 ou Inf/Inf

Variáveis do Matlab

O Matlab cria automaticamente a variável ans (de ANSwer), que guarda o valor da última expressão calculada, quando este não tiver sido atribuído a nenhuma outra variável.

2.4 Exemplos

Apresentam-se a seguir alguns exemplos de aplicação dos conceitos estudados.

Criação de um vector teta com valores entre 0 e 2*, em intervalos de /4

teta=0:pi/4:2*pi

Definição do complexo 5+j9

5+9j ou 5+9i

Criação de uma matriz de 5x6 com -6 em todos os elementos

-6*ones(5,6)

3

Programação em Matlab

A programação em Matlab é simultaneamente simples e poderosa. Abrange diversos aspectos

(Simulink, Graphical User Interfaces), mas aqui será apenas referida a programação através da linha

de

comando.

3.1

Expressões

As expressões em Matlab podem envolver matrizes inteiras, ao invés de obrigar a trabalhar apenas elemento a elemento, como acontece em muitas linguagens de programação.

3.1.1 Variáveis

As variáveis em Matlab não necessitam de ser explicitamente declaradas, pois, como se viu anteriormente, são geralmente do tipo matriz (de reais e/ou complexos). O seu nome forma-se com uma letra, seguida de um qualquer número de letras, dígitos ou travessão inferior (underscore). É feita a distinção entre maiúsculas e minúsculas.

3.1.2 Números

Os números podem ser introduzidos como inteiros (apenas dígitos), como negativos (com um sinal de “menos” a precedê-los), como decimais (com um ponto a separar a parte inteira da parte fraccionária), como complexos (seguidos de i ou j), ou em notação científica (em que as potências de 10 se indicam com a letra e). Assim, pode-se ter, por exemplo:

2546

-465.003

4.643

3.1.3 Operadores Aritméticos

87i

343.54j

1.5e-5

Os operadores aritméticos, definidos com as precedências habituais, são a soma (+), a subtracção (-), a multiplicação (*), a divisão (/), e a potenciação (^).

3.2 Operações Básicas Sobre Matrizes

Ao contrário de outras linguagens de programação, o Matlab permite realizar operações sobre matrizes inteiras com comandos simples.

Transposta

A transposta da matriz A obtém-se pelo operador apóstrofe. Assim, para a matriz anteriormente

definida, o comando

A'

tem como resultado

4

5

0

3

7

0

1

0

0

0

0

0

0

0

5

Inversa

A inversa é dada pela função inv. Se H for uma matriz quadrada (note-se que não se podem

inverter matrizes não quadradas) de determinante não nulo, então

inv(H)

fornece a matriz que multiplicada à esquerda ou à direita por H resulta na matriz identidade. Note-se que a divisão de duas matrizes quadradas da mesma dimensão, por exemplo H/G, corresponde à expressão H*inv(G).

Determinante

O determinante da matriz quadrada H é dado por

det(H)

Dimensão

A dimensão da matriz A obtém-se através de

size(H)

A resposta será o número de linhas e de colunas.

Operadores

Os operadores que podem ser aplicados a matrizes incluem, além da adição, subtracção, multiplicação e divisão, a multiplicação elemento a elemento (.*), a divisão elemento a elemento (./), e a potenciação elemento a elemento (.^). Por exemplo, a multiplicação elemento a elemento significa que o resultado de

Z=X.*Y

será uma matriz Z, em que cada elemento Z(i,j) é dado por

Z(i,j)=X(i,j)*Y(i,j)

e não pela regra habitual de multiplicação de matrizes, que equivaleria à expressão

Z=X*Y

3.3

Controlo da Sequência do Programa

O Matlab apresenta diversos comandos para controlar a sequência dos programas, como por

exemplo os ciclos for ou o teste de condições if.

3.3.1

Ciclos

Os ciclos permitem repetir instruções um número pré-determinado de vezes, ou até que uma condição se verifique.

Ciclo for

Este ciclo consiste em atribuir um valor inicial a uma variável, executar instruções especificadas,

e incrementar a variável, ou de 1, por defeito, ou de um passo determinado. Isto repete-se até que seja atingido ou ultrapassado um valor final permitido. O ciclo termina com a instrução end., e a sua sintaxe é:

for variável = valor_inicial : [passo :] valor_final,

{instruções}

end

Como referido, caso o passo não seja especificado, terá, por defeito, valor unitário.

Por exemplo, para preencher um vector p de dez elementos com uma sequência de potências de

2 (não esquecer que a posição genérica i do vector p se acede através de p(i)), poder-se-ia

fazer:

for i = 1 : 10,

p(i) = 2^(i-1);

end

O

vector p seria assim constituído por:

 

1

2

4

8

16

32

64

128

256

512

Para construir um vector de 100 elementos representando dois períodos de uma sinusóide, ter- se-ia, por exemplo:

wt = 0 : 4*pi/99 : 4*pi

% cria um vector de 100 pontos

% equidistantes, de 0 a 4*pi

for i = 1 : 100,

s(i) = sin(wt(i));

end

% a função ‘sin’ devolve o seno do argumento

Note-se que este exemplo pretende ser apenas meramente ilustrativo do funcionamento do ciclo for, já que o vector s poderia ter sido criado, de forma mais compacta, através de:

s = sin(wt)

O vector s está representado na Figura 3-1.

Comandos Relacionados

Outros comandos relacionados com ciclos, que se deixa a cargo do leitor a tarefa de descortinar

o seu funcionamento, são os comandos while, continue, e break.

1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1 0 2 4 6
1
0.8
0.6
0.4
0.2
0
−0.2
−0.4
−0.6
−0.8
−1
0
2
4
6
8
10
12

3.3.2 Testes Lógicos

Figura 3-1: Sinal sinusoidal

Os testes lógicos consistem na avaliação do valor ou estado de expressões, e na execução de instruções conforme esse valor ou estado.

Teste if

O teste if avalia uma expressão e executa um grupo de instruções se essa for verdadeira. As instruções a executar se a expressão tiver valor lógico falso podem opcionalmente ser definidas através do comando else. O comando end termina o teste, cuja sintaxe é:

if expressão

{instruções_se_expressão_verdadeira}

else

{instruções_se_expressão_falsa}

end

Por exemplo, para o vector s anteriormente definido, se se quisesse definir a sinusóide só nos semi-ciclos positivos, e nos negativos forçá-la a zero (sinusóide simplesmente rectificada), a sua definição passaria a ser, por exemplo:

for i=1:100,

a=sin(wt(i));

% variavel auxiliar

if a>0

% testa se o valor calculado e’ positivo

s(i)=a;

else

% caso em que o valor e’ menor ou igual a 0

s(i)=0;

end

end

1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1 0 2 4 6
1
0.8
0.6
0.4
0.2
0
−0.2
−0.4
−0.6
−0.8
−1
0
2
4
6
8
10
12

Figura 3-2: Sinusóide simplesmente rectificada

A sinusóide simplesmente rectificada está representado na Figura 3-2.

Comandos Relacionados

switch

3.4 Funções Elementares

O Matlab tem definidas várias funções elementares no tópico elfun (de ELementary FUNctions),

de que a seguir se referem alguns exemplos.

Funções Trigonométricas

sin(X)

seno, em radianos, dos elementos da matriz X

cos(X)

coseno, em radianos, dos elementos da matriz X

tan(X)

tangente, em radianos, dos elementos da matriz X

Exponenciais e Logaritmos

exp(X)

exponencial dos elementos da matriz X; se X for uma matriz de

complexos, X=A+jB, então retorna exp(A)*(COS(B)+i*SIN(B))

log(X)

logaritmo natural dos elementos da matriz X

log10(X)

logaritmo de base 10 dos elementos da matriz X

sqrt(X)

raiz quadrada dos elementos da matriz X

Outras Funções

abs(X)

valor absoluto dos elementos da matriz X; se X for uma matriz de complexos, então retorna a magnitude ou módulo dos elementos de X

angle(X)

fase, em radianos, dos elementos da matriz de complexos X

real(X)

parte real dos elementos da matriz de complexos X

imag(X)

3.5

Exemplo

parte imaginária dos elementos da matriz de complexos X

Serão agora apresentados um conjunto de instruções que permitem criar as funções

y

y

y

1

2

3







t

t

t

e

e

t

t



e

cos

t

t

Estas funções, como terá oportunidade de verificar noutras disciplinas do curso, estão intimamente ligadas com a resposta de circuitos eléctricos com uma resistência, uma bobina e um condensador (circuitos RLC).

t=0:0.1/999:0.1

% cria vector de tempo, com 1000 elementos

tau=0.02; w=2*pi*50;

% variáveis auxiliares ‘tau’ e ‘w’

for i=1:1000,

y1(i)=exp(-t(i)/tau)*cos(w*t(i));

y2(i)=exp(-t(i)/tau);

y3(i)=-exp(-t(i)/tau);

end

As funções obtidas estão representadas na Figura 3-3.

y 2 y 1 y 3
y 2
y 1
y 3

Figura 3-3: Funções representando a resposta de um circuito RLC

4 Ficheiros

A utilização e gestão de ficheiros em Matlab apresenta aspectos muito importantes. A

programação através da linha de comandos pode-se tornar exasperante, pois um simples engano num carácter pode tornar inúteis os comandos anteriormente introduzidos, se se estiver, por exemplo, a meio de um ciclo. Este problema é ultrapassado se os comandos forem gravados num ficheiro, e este corrido a partir do Matlab. Por outro lado, os valores de determinadas variáveis de interesse, ou de todo o espaço de trabalho, podem ser guardadas e utilizadas posteriormente.

4.1 O Editor do Matlab

O editor do Matlab permite não só a criação de ficheiros com código de programação, mas

também correr os programas e fazer a sua depuração (debug).

Um ficheiro de Matlab é criado através do comando edit. Este comando, por si só, abre um editor, onde se pode escrever um programa, para posterior utilização. O comando

edit nome

abre o ficheiro nome.m para ser editado. Para correr um programa gravado num ficheiro, basta introduzir na linha de comando o seu nome, neste caso:

nome

Note-se que é necessário que a directoria de trabalho coincida com aquela onde está o ficheiro (ou que esta esteja indicada na path). Na Figura 4-1 apresenta-se o editor do Matlab aberto para um ficheiro existente.

path ). Na Figura 4-1 apresenta-se o editor do Matlab aberto para um ficheiro existente. Figura

Figura 4-1: Editor do Matlab

4.1.1

Gestão de Directorias

Para se saber qual a directoria de trabalho, introduz-se

cd

Este comando permite ainda as seguintes possibilidades:

cd

muda para a directoria (ou pasta, ou folder) imediatamente acima; repare que deve sempre existir um espaço entre o comando cd e qualquer opção a seguir

cd

direct

muda para a subdirectoria direct, que se encontra dentro da directoria de trabalho actual

cd

\

muda para a directoria raiz (root)

cd

d:

muda para o disco d

Se a directoria incluir caracteres especiais (espaços, acentos, etc.), então deverá ser usada a seguinte forma, por exemplo para a pasta ‘Os meus documentos’:

cd(‘\windows\Os meus documentos’)

Para listar os ficheiros da directoria de trabalho, utiliza-se o comando dir. Por exemplo, o comando

dir *.m

lista apenas os ficheiros cuja extensão seja m.

4.2 Guardar Variáveis em Ficheiros

As variáveis do ambiente de trabalho podem ser gravadas através da função save (e lidas posteriormente com load). Existem assim as seguintes opções:

save

nome

grava todas as variáveis para o ficheiro nome.mat

save

nome

X

grava a variável X no ficheiro nome.mat

save nome X Y Z

grava as variáveis X, Y e Z no ficheiro nome.mat

4.3 Ler Variáveis de Ficheiros

Como foi referido acima, a recuperação de variáveis a partir de ficheiros faz-se com a função

load:

load

nome

recupera todas as variáveis gravadas no ficheiro nome.mat

load

nome

X

recupera apenas a variável X, gravada no ficheiro nome.mat

load nome X Y Z

recupera as variáveis X, Y e Z, gravadas no ficheiro nome.mat

5

Visualização de Dados

Um dos pontos fortes do Matlab é a facilidade de visualização gráfica de dados, tanto em duas como em três dimensões. Estes gráficos são visualizados numa janela independente, designada figura (figure), como a representada na Figura 5-1, correspondendo ao exemplo da Secção 3.5. Como se pode observar, existem vários ícones e menus, que permitem aceder a diversas opções sobre o aspecto e escalas do gráfico, ou mesmo gravá-lo sob diferentes formatos.

do gráfico, ou mesmo gravá-lo sob diferentes formatos. Figura 5-1: Janela de visualização de gráficos 5.1

Figura 5-1: Janela de visualização de gráficos

5.1 Gráficos a Duas Dimensões

O comando que permite visualizar gráficos a duas dimensões, com escalas lineares, é o comando

plot. Este apresenta diferentes possibilidades:

plot(X,Y)

desenha o gráfico cujas abcissas são os elementos do vector X ordenadas os elementos do vector Y

e as

plot(X)

desenha o gráfico cujas abcissas são os elementos do vector X ordenadas os seus índices

e as

plot(X,Y,X,Z)

desenha o gráfico cujas abcissas são os elementos do vector X e as ordenadas os elementos do vector Y e os do vector Y

O comando plot permite ainda especificar a cor de cada curva desenhada, mas esta tarefa pode

ser acedida directamente a partir da janela do gráfico, pelo que não será por ora explanada.

Visualização de Curvas no Mesmo Sistema de Eixos

Como referido, através de plot(X,Y,X,Z,X,…) podem-se desenhar inúmeros gráficos tendo eixos comuns, dados pelo vector X. Note-se que todos os vectores envolvidos têm obrigatoriamente de apresentar a mesma dimensão.

Visualização de Curvas em Diferentes Sistemas de Eixos

Para se visualizar em simultâneo vários gráficos na mesma janela, utiliza-se o comando subplot. Este divide a janela numa matriz NxM, ao mesmo tempo que acede à posição em que se pretende desenhar o respectivo gráfico. Voltando ao exemplo da Secção 3.5, suponha-se que se

pretendia desenhar, separadamente, os gráficos dos sinais y 1 , y 2 e y 3 , e um gráfico conjunto desses mesmos sinais. Antes de mais, a sintaxe do comando subplot é:

subplot(N,M,i)

divide a janela em N linhas e M colunas, e activa a i-ésima posição para desenhar o gráfico; as posições contam-se da esquerda para a direita e de cima para baixo

Note-se que o comando subplot deve preceder um plot, que efectivamente desenhará os gráficos. Continuando com o exemplo, os comandos seriam:

subplot(2,2,1)

% selecciona a primeira posição da matriz 2x2

plot(t,y1)

% desenha a curva y1 na posição seleccionada

subplot(2,2,2)

% selecciona a segunda posição

plot(t,y2)

subplot(2,2,3)

% selecciona a terceira posição

plot(t,y3)

subplot(2,2,4)

% selecciona a quarta posição

plot(t,y1,t,y2,t,y3)

O resultado destas instruções é a janela representada na Figura 5-2.

Alteração das Propriedades dos Gráficos

As propriedades dos gráficos (espessura e cor das linhas, título, texto, escalas, fontes e dimensão do texto, tipo de eixos, etc.) podem ser alteradas, quer através de comandos, quer interactivamente. Só esta última forma será aqui sumariamente descrita.

Para se poder alterar as propriedades do gráfico, deve-se primeiro entrar em modo de edição (edit mode). Isso é feito activando o ícone respectivo, representado na Figura 5-3. Após esta operação, basta clicar duas vezes na curva (estilo, espessura, cor) ou nos eixos (título, legenda dos eixos, limites, tipo de gráfico). Podem ainda ser inseridos texto, setas e segmentos, através dos ícones respectivos, também representados na Figura 5-3.

5.2 Gráficos a Três Dimensões

O Matlab permite a visualização de superfícies e de funções de duas variáveis, z f(x,y) , ou

seja, de gráficos tridimensionais. Isto pode ser feito através das funções mesh (superfície formada por segmentos unindo pontos adjacentes, geralmente conhecida por wire-frame surface) ou surf (superfície formada por polígonos facetados unindo pontos adjacentes).

Se Z(i,j) for uma matriz em que cada elemento corresponde à altura de uma superfície sobre uma grelha (i,j), então os comandos seguintes permitirão visualizar essa superfície:

mesh(z)

surf(z)

Figura 5-2: Comando subplot Inserir segmentos Inserir setas Inserir texto Modo de edição Figura 5-3:

Figura 5-2: Comando subplot

Inserir segmentos Inserir setas Inserir texto
Inserir segmentos
Inserir setas
Inserir texto

Modo de edição

Figura 5-3: Alteração das propriedades de uma figura

A visualização de funções z f(x,y) implica adicionalmente a definição dos domínios, isto é,

das matrizes X e Y, além da matriz Z correspondente. Para tal, pode-se recorrer à função

[X,Y] = MESHGRID(dx,dy)

que cria as matrizes X e Y, correspondentes aos vectores domínio dx e dy, adequadas a serem

utilizadas pelas funções mesh e surf. Se os domínios forem iguais, pode-se utilizar a forma mais

compacta

[X,Y] = MESHGRID(d)

A

utilização destas funções será mais facilmente descrita através de um exemplo. Assim, admita-

se

que se pretendia visualizar a função

z

sinc

x

,

y

  2 2 sin x  y 2 2 x  y
2
2
sin
x
y
2
2
x
y

com domínios entre -10 e 10, tanto em x como em y. Uma forma possível de o fazer seria:

d=-10:.5:10;

[X,Y]=meshgrid(d);

% definicao do dominio, isto e, um vector de -10 a

% 10, com um passo de 0.5

% definicao das matrizes que serao utilizadas para

% construir a funcao z=sinc(x,y)

R=sqrt(X.^2+Y.^2)+eps; % definicao de uma matriz auxiliar. Note-se a

% potenciacao tem que ser feita elemento a

% elemento. A constante do Matlab eps foi

% adicionada apenas para evitar a multiplicacao

% por zero, no passo seguinte, e evitar uma

Z=sin(R)./R;

% mensagem de aviso.

% definicao da matriz Z

Uma vez definidas as matrizes X, Y e Z, introduzir-se-iam os comandos mesh(X,Y,Z) ou surf(X,Y,Z), consoante o tipo de superfície pretendida. O resultado destes comandos pode-se observar nas Figura 5-4 e Figura 5-5.

Alteração das Propriedades dos Gráficos

O modo de edição permite alterar inúmeras propriedades da superfície, como sejam a luminosidade, cor das faces e dos segmentos, vista, perspectiva, etc. Deixa-se ao leitor a tarefa de explorar essas possibilidades, representando-se na Figura 5-6 um exemplo de alteração das propriedades da superfície anteriormente definida.

um ex emplo de alteração das propriedades da superfície anteriormente definida. Figura 5-4: Exemplo da função

Figura 5-4: Exemplo da função mesh

Figura 5-5: Exemplo da função surf Figura 5-6: Alteração das propriedades de uma superfície 23

Figura 5-5: Exemplo da função surf

Figura 5-5: Exemplo da função surf Figura 5-6: Alteração das propriedades de uma superfície 23

Figura 5-6: Alteração das propriedades de uma superfície

6 Bibliografia

Adicionalmente à sumária introdução ao Matlab apresentada neste manual, encontra-se, como já referido, uma extensa bibliografia em www.mathworks.com, no formato pdf, da qual se destacam:

Geting Started with MATLAB, Version 6.uma extensa bibliografia em www.mathworks.com , no formato pdf, da qual se destacam: Using MATLAB Graphics,

Using MATLAB Graphics, Version 6.bibliografia em www.mathworks.com , no formato pdf, da qual se destacam: Geting Started with MATLAB, Version