guia do matlab - ita

99

Upload: eduar-andrighetti

Post on 02-Jan-2016

88 views

Category:

Documents


10 download

TRANSCRIPT

Ao leitor

Estas páginas reproduzem o conteúdo do livro (versão 1.2.3/março 1998):

Adade Filho, A. - MATLAB BÁSICO. S. José dos Campos-SP, CTA-ITA-IEMP, 1996.

Encomendar cópia.

Este livro foi motivado pela necessidade de capacitar rapidamente alunos de graduação e de pós-graduação a utilizarem o MATLAB como suporte computacional em estudos nas áreas da engenharia em que ministro cursos.

O texto foi idealizado e é apresentado em várias unidades didáticas progressivas, correspondendo aos recursos oferecidos pelo software básico, a serem estudadas preferencialmente utilizando-se de um computador, reproduzindo cada exemplo ou exercício apresentado. Tenho utilizado este material, na forma indicada, como base para instrução sobre o MATLAB (4 a 8 horas-aulas); os resultados conseguidos com esta abordagem têm sido excepcionais e espera-se, assim, que possa satisfazer expectativas do prezado leitor.

O material apresentado não pretende abordar de forma completa e minuciosamente os recursos proporcionados pelo MATLAB. Assim, o Guia do Usuário e outros manuais que acompanham o produto continuam sendo fundamentais para a consulta do usuário; o recurso de Ajuda (Help) On Line também deve ser explorado. Na parte final desta publicação, são listadas as funções disponíveis do MATLAB para uma consulta rápida do usuário.

MATLAB apresenta-se como um dos melhores recursos da atualidade quanto a suporte computacional para o cálculo e análise em engenharia. Pelo nível de qualidade e aceitação que atingiu e sua contínua evolução, propicia que haja retorno do investimento realizado na sua aquisição e aprendizagem.

This book intends to provide students and professionals with a quick and comprehensive tutorial on MATLAB basics features and programming. It covers the general use and the resources of MATLAB through explanations, examples and solved exercises. An appendix is added as a reference table of MATLAB (v.4.2) functions, symbols and commands, also providing a general perspective of the MATLAB power.

Preliminares

Para esta publicação, o equipamento de referência é um microcomputador PC-compatível com coprocessador aritmético, "rodando" ambiente Windows e MATLAB v.4.0 ou versão 4 mais recente. Convém, entretanto, notar que os fundamentos e muitas das informações apresentadas sobre as funções do MATLAB também se aplicam a versões anteriores deste software.

Todos os direitos reservados (registro n° 139257).

Reprodução por quaisquer meios proibida sem autorização do autor.

Prof. Alberto Adade Filho

CTA-ITA-IEMP

12228-900 S. José dos Campos-SP

Fone: (012) 347-5869

Fax: (012) 341-5801, 347-5803

e-mail: [email protected]

ÍNDICE

1. Introdução

2. Entrar e Sair do MATLAB

3. Definindo Matrizes para o MATLAB

4. Elementos das Matrizes

5. Variáveis, Números e Expressões

6. Variáveis Permanentes

7. Acompanhamento do Espaço de Trabalho, Diretórios e Arquivos

8. Formato de Saída

9. Ajuda, Comentários, Continuação

10. Salvar ou Carregar Dados no Espaço de Trabalho

11. Documentar uma Sessão

12. Operações com Matrizes

• i. Transposta ' • ii. Adição + e Subtração - • iii. Multiplicação * • iv. Divisão / e \ • v. Potenciação ^

13. Operações com Vetores

14. Operações Relacionais

15. Operações Lógicas

16. Funções Matemáticas do MATLAB

• i. Elemento a Elemento • ii. Vetores • iii. Funções de Matrizes

17. Submatrizes, Indexação e a Notação

• i. Gerar Vetores • ii. Acessar Submatrizes

18. Funções para Construção de Matrizes

19. Controle de Fluxo

• i. Malhas for • ii. Malhas while • iii. Condicionais e Ramificações

20. Traçando Gráficos no MATLAB

• i. Introdução • ii. Forma Básica • iii. Diagramas Polares • iv. Curvas no Espaço Tridimensional • v. Particionamento da Tela • vi. Títulos, Rótulos, Texto, Grade • vii. Controle de Telas e de Escalas • viii. Estilo de Linhas, Marcações e Cores • ix. Gráficos de Superfícies • x. Preparação de Grades de Dados e Plotagem • xi. Impressão de Gráficos • xii. Manipulação de Gráficos

21. M-Files

• i. Script • ii. Function

22. Variáveis Globais

23. Strings

24. Entrada de Dados pelo Teclado

25. Retorno Momentâneo ao Sistema Operacional

26. Uso de Subrotinas em C ou FORTRAN

27. Operações com Arquivos (I/O)

28. Trajeto de Busca do MATLAB

29. Som no MATLAB

Bibliografia

Anexo - Funções Disponíveis (MATLAB 4.2)

• Entrar e Sair do MATLAB • Arquivos e Sistema Operacional • Controle da Janela de Comandos • Comandos de Administração dos Recursos • Caracteres Especiais • Comandos de E/S, Administração do Espaço de Trabalho e suas Variáveis • Variáveis e Constantes Especiais • Operações de Matrizes • Operadores Relacionais • Operadores Lógicos • Funções Lógicas • Propriedades de Matrizes • Manipulação de Matrizes • Funções de Matrizes • Matrizes Especiais • Fatoração/Decomposição de Matrizes • Sistema de Equações Lineares e Solução de Mínimos-Quadrados • Autovalores e Valores Singulares • Funções Trigonométricas • Funções Matemáticas Elementares • Funções Especiais • Programação - Controle de Seqüência • Programação Geral e Interface com o Usuário • Hora e Data • Texto e Variáveis Alfanuméricas (Strings) • Depuração de Programa (Debugging) • Análise de Dados • Processamento de Sinais • Diferenças Finitas e Interpolação de Dados • Polinômios • Integração Numérica • Solução de Equações Diferenciais • Equações Não-Lineares e Otimização • Traçado de Gráficos • X-Y Básico • X-Y Especializados • Impressão e Armazenamento

• Anotação em Gráficos • Criação e Controle de Janelas de Figuras • Criação e Controle de Eixos • Gráficos Tridimensionais (3-D) • Objetos em 3-D • Visualização do Gráfico 3-D • Funções para Controle de Cor e Claridade/ • Iluminação

o Controle de Cor o Mapas de Cores o Funções Relacionadas ao Mapa de Cor o Modelos de Claridade/Iluminação

• Criação de Objetos Gráficos • Operações em Objetos Gráficos • Propriedades de Objetos Gráficos

o Todos o Root o Figure o Axes o Uicontrol o Uimenu o Line o Text o Surface o Patch o Image

• Filmes e Animação • Som • Funções para Utilização com Matrizes Esparsas

2. Entrar e Sair do MATLAB

MATLAB é acessado através do comando matlab; na maioria dos sistemas computacionais modernos, também pode ser acessado via menu ou através de um ícone.

O programa MATLAB é terminado através do comando quit ou exit (ou fechando-se uma janela, no ambiente Windows).

3. Definindo Matrizes para o MATLAB

Matrizes são introduzidas (definidas) como uma lista de elementos, entre colchetes [] e usando-se ponto e vírgula (;) para indicar término de linhas. Os elementos numa linha podem ser separados por vírgula ou por espaço em branco.

Ex:

A = [1 2 3; 4 5 6; 7 8 9]

ou

A = [ 1 2 3

4 5 6

7 8 9]

Obs 1. A sintaxe MATLAB é sensível ao caso das letras, isto é, diferencia entre letras maiúsculas e minúsculas; assim a e A representam variáveis distintas. Todas as funções são nomeadas em letras minúsculas. O comando casesen desliga essa condição (ou liga, se estiver desligada).

Obs. 2 O procedimento de entrada de dados e de comandos é simplificado através do uso de funções e de teclas especiais (seta para cima ou Crtl-P, seta para baixo ou Crtl-N, seta para a esquerda ou Crtl-B, seta para a direita ou Crtl-F, Crtl-seta para a esquerda, Crtl-seta para a direita, Home ou Crtl-A, End ou Crtl-E, Esc, Del ou Crtl-D, Backspace, Crtl-K) do editor de linhas de comandos do MATLAB.

Matrizes também podem ser geradas por comandos e funções do MATLAB, editadas e "carregadas" via um arquivo M-file (excelente alternativa quando se trata de matrizes grandes, pois valores de seus elementos podem ser corrigidos com um editor de texto e pode ser reintroduzida sem trabalho extra) e/ou "carregadas" de arquivos externos.

4. Elementos das Matrizes

Os elementos de uma matriz podem ser definidos como números reais, números complexos, expressões matemáticas e mesmo outras matrizes.

Ex. 1.

x = [-1.1 sqrt(3) 4*atan(1)]

resulta

x =

-1.1000 1.7321 3.1416

Elementos podem ser referenciados através de índices entre parênteses, como usual, por exemplo, A(1,3), x(2) etc.

Obs. O redimensionamento de uma matriz é automático. Por exemplo,

x(5) = abs(x(1))

resulta

x =

-1.1000 1.7321 3.1416 0.0000 1.1000

Ex. 2.

A = [A; 10 11 12]

resulta

A =

1 2 3

4 5 6

7 8 9

10 11 12

Ex. 3.

A = [ A [10; 11; 12; 13] ]

resulta

A =

5. Variáveis, Números e Expressões

Cálculos no MATLAB são solicitados com a seguinte sintaxe:

variável = expressão

ou

expressão

No primeiro caso a expressão é calculada e o resultado colocado na variável especificada; no segundo caso, a expressão é calculada e o resultado é colocado numa variável de trabalho, criada automaticamente e denominada ans.

Ex:

180/3.1416

produz

ans =

57.2956

Obs. Terminar uma expressão com ; (ponto e vírgula) suprime a apresentação do resultado mas a expressão é calculada.

Números e operadores aritméticos utilizados nas expressões matemáticas são representados em notação convencional semelhante à utilizada na linguagem C.

Ex: 3 -99 .001 9.63972 1.602E-20 6.02252e23

Operadores aritméticos:

+ adição

- subtração

* multiplicação

/ divisão à direita

\ divisão à esquerda

^ potenciação

Parênteses ( ) são usados para se estabelecer ordem de precedência de cálculo ou simplesmente para melhorar a clareza documental das expressões.

Exs. Computar:

z = (2+5i)*(1-5i)/((1+7i)*(3+2i))

z =

-0.6338 - 0.8708i

y = (2-i)^8

y =

-5.2700e+002+ 3.3600e+002i

6. Variáveis Permanentes

Existem algumas variáveis permanentes no MATLAB:

eps : precisão em ponto flutuante ou unidade de máquina. Vem ajustada com o valor 2-52 ≈ 2.22x10-16 (valor que pode ser alterado pelo usuário). Esta variável é útil para se definir tolerâncias de convergências em cálculos iterativos e para evitar que funções recebam argumento nulo quando isso não for possível ou desejado.

pi ≈ π ≈ 4 * atan(1)

inf = ∞ (Ex: s = 1/0 resulta s = ∞ e mensagem)

NaN = Not a Number (Resulta nas situações Inf/Inf e 0/0)

7. Acompanhamento do Espaço de Trabalho, Diretórios e Arquivos

who : lista variáveis no espaço de trabalho do MATLAB;

whos: semelhante a who mas produz informações mais detalhadas sobre as variáveis correntes no espaço de trabalho;

pwd : retorna o nome do diretório de trabalho atual;

cd : altera o diretório de trabalho;

dir : lista o conteúdo do diretório de trabalho;

what diretório: lista os M-files no diretório especificado;

delete : elimina um arquivo;

type : mostra na tela o conteúdo de um arquivo.

8. Formato de Saída

Os seguintes comandos controlam o formato em que são mostrados os dados e resultados:

format short : ponto fixo, quatro casas decimais

format short e : notação científica, quatro casas decimais

format long : ponto fixo, quatorze casas decimais

format long e : notação científica, quatorze casas decimais

format hex : hexadecimal

format + : + (se positivo), - (se negativo), branco (se nulo)

format rat : formato racional (aprox.), isto é, razão de inteiros

format bank : valor monetário (dólares e centavos)

Obs. O format short é o formato pré-definido (default).

Além desses, e independente do formato vigente, há ainda o comando format compact, que suprime linhas em branco permitindo que mais informação caiba numa tela ou página, e o comando format loose, que faz retornar ao formato não compactado.

Ex.

x = [6/7 1.1742e-5]

short: 0.8571 0.0000

short e: 8.5714e-001 1.1742e-005

long: 0.85714285714286 0.00001174200000

long e: 8.571428571428571e-001 1.174200000000000e-005

hex: 3feb6db6db6db6db 3ee89ff031112b32

+ : + +

rat : 6/7 3/255493

bank: 0.86 0.00

Obs. Os cálculos e valores armazenados são sempre em precisão dupla, independente do formato de saída utilizado.

9. Ajuda, Comentários, Continuação

O comando help proporciona informação on-line sobre um tópico escolhido:

help apresenta os diretórios no trajeto de busca ("path") do MATLAB

help diretório mostra arquivo contents.m, a relação de funções no diretório.

help função mostra as linhas de comentários que documentam a função.

help elfun lista as funções matemáticas elementares que estão disponíveis.

help graphics lista as funções relacionadas com a criação e controle de figuras e gráficos.

help plotxy lista as funções para traçado de gráficos X-Y.

help plotxyz lista as funções para traçado de gráficos de superfície e 3-D.

O símbolo % indica que o restante da linha que o contém é um comentário, não sendo então processado pelo MATLAB.

Ao terminar uma linha com ... o usuário indica para o MATLAB que ela não está terminada e o texto que segue em outra linha é de continuação (exceto linhas de comentários).

10. Salvar o Espaço de Trabalho

O comando save antes de sair de uma sessão do MATLAB ocasiona que todas as variáveis sejam gravadas no arquivo matlab.mat (numa estrutura especial chamada MAT-file). Iniciando uma nova sessão, o comando load restaura o espaço de trabalho a partir do arquivo matlab.mat. Salvar (e recuperar) parte do espaço de trabalho de uma sessão também é possível, por exemplo, o comando save a:TEMP X Y Z armazena as variáveis X, Y e Z no arquivo TEMP na unidade de disco a; o comando load a:TEMP restaura todas as variáveis que estão no arquivo TEMP.

Esses comandos também possuem a opção de arquivos no formato ASCII; o resultado é gravado num arquivo de mesmo nome que a variável, no caso do comando save, e é carregado numa variável de mesmo nome que o arquivo, no caso do comando load. Por exemplo, seja um arquivo, de nome matriz, consistindo de um "array" retangular de números, editado em ASCII com um editor de texto. O comando load matriz carrega este arquivo para uma variável matriz no espaço de trabalho.

Exs.

save nome-de-arquivo % salva o espaço de % trabalho em arquivo

save nome-de-arquivo X, Y, Z % salva variáveis X, Y e Z % em arquivo binário

save nome-de-arquivo X, Y, Z -ascii % salva variáveis X, Y e % Z em arquivo ASCII

save nome-de-arquivo X, Y, Z -ascii -tabs -double % salva % variáveis X, Y e Z em arquivo ASCII % delimitado por tabulações e em precisão % dupla (16-dígitos)

load nome-de-arquivo % carrega arquivo assumindo que % existe um arquivo.mat

load nome-de-arquivo.txt % carrega arquivo como ASCII

load nome-de-arquivo.txt -ascii %carrega arquivo como ASCII

load nome-de-arquivo.dat -mat % carrega arquivo como % sendo .mat

Obs. O comando load não carrega arquivos que tenham sido gravados com uma linha de cabeçalho antes dos dados propriamente ditos.

11. Documentar uma Sessão

O comando,

diary nome-do-arquivo

ocasiona que o que aparece na tela, exceto gráficos (vide seção 20.x) e subseqüentemente ao comando, seja gravado no arquivo especificado. Omitindo-se nome-do-arquivo as informações são gravadas no arquivo diary.Para desligar a opção, diary off; para retomar, diary on.

Obs. O conteúdo da janela de comandos pode ser impresso ou gravado (integralmente ou em parte) utilizando-se a opção Imprimir (Print) do menu Arquivo (File) da janela de comandos.

12. Operações com Matrizes

• i. Transposta ' • ii. Adição + e Subtração - • iii. Multiplicação *

• iv. Divisão / e \ • v. Potenciação ^

i. Transposta ‘

Exs. A=[1 2 3; 4 5 6; 7 8 9]

B = A'

B =

1 4 7 2 5 8 3 6 9

x = [-2 0 1 ]'

x =

-2 0 1

Obs. Para matrizes complexas esta operação retorna a transposta da conjugada; para se obter a transposta não conjugada de uma matriz A complexa, usar A.’ ou conj(A’).

ii. Adição + e Subtração -

Ex.

C = A + B

C =

2 6 10 6 10 14 10 14 18

Os operandos devem ter a mesma dimensão, exceto quando um deles for um escalar, neste caso, o escalar é somado (ou subtraído) de todos os elementos do outro operando.

Ex.

y = x - 1

y =

-3 -1 0

iii. Multiplicação *

Ex:

C = A * B

C =

14 32 50 32 77 122 50 122 194

Obs. Produto escalar dos vetores x e y : x'* y

iv. Divisão / e \

Seja A matriz quadrada e não singular e B de dimensões compatíveis em cada caso. Então,

X = A \ B = A-1 B = inv(A) * B

X = B / A = B A-1 = B * inv(A)

Se A não for quadrada, o resultado X é obtido como solução de

A * X = B

ou

X * A = B

no sentido de mínimos quadrados.

Obs. B / A = (A' \ B' )'

v. Potenciação ^

Seja A uma matriz quadrada e p um escalar. Então,

A ^ p = ( se p for inteiro)

A ^ p = V * D^p * V-1 , [V,D] = eig(A) (p qualquer)

No caso em que a é um escalar e P uma matriz quadrada, a função de matriz a^P (cujo resultado é uma matriz de mesma dimensão de P) é calculada através dos autovetores e autovalores de P.

Obs. X^P , X e P matrizes, não é definido.

13. Operações com Vetores

Soma + e subtração - operam de forma convencional, elemento a elemento de um vetor. Para que as outras operações definidas para matrizes operem elemento a elemento e assim possam ser definidas para vetores, devem estar precedidas por um ponto:

.* : multiplicação

./ e .\ : divisão

.^ : potenciação

Exs. Sejam,

x = [ 1 2 3 ] y = [ 4 5 6 ]

Então,

z = x .* y

z =

4 10 18

z = x .\ y

z =

4.0000 2.5000 2.0000

z = x ./ y

z =

0.2500 0.4000 0.5000

z = x .^ y

z =

1 32 729

z = x .^ 3

z =

1 8 27

z = 2 .^ [x y]

z =

2 4 8 16 32 64

Operações elemento-a-elemento permitem uma compactação de código que não se consegue usando linguagens de programação convencionais. Por exemplo, supor que um experimento tenha sido repetido N vezes medindo-se as variáveis a, b, c e d. Tem-se, então, quatro vetores de medidas, digamos A, B, C e D de dimensão N. Deseja-se calcular o valor da variável f para cada experimento, onde

.

Usando-se as operações elemento-a-elemento este cálculo se simplifica a,

F = A ./ (B .* C .* D)

14. Operações Relacionais

São os seguintes os operadores relacionais no MATLAB, usados para se comparar matrizes de mesma dimensão:

< menor do que

<= menor do que ou igual a

> maior do que

>= maior do que ou igual a

== igual

~= não é igual a

A comparação é feita entre pares de elementos correspondentes e o resultado é uma matriz de 1's e 0's, representando verdadeiro (1) e falso (0) na comparação.

Exs.

2 + 2 ~= 4

ans=

0

a = [ 1 2 3] b = [ 1 4 6 ]

z = a >= b

z =

1 0 0

15. Operações Lógicas

São os seguintes os operadores lógicos (operam elemento a elemento):

& : AND

| : OR

~ : NOT

xor : OR exclusivo.

Os operadores lógicos retornam um (1) quando verdadeiro ("True") e zero (0) quando falso ("False"). Elementos não nulos são considerados verdadeiro pelos operadores lógicos.

Exs.

~A : retorna 0’s onde A for não nula e 1’s onde A for nula.

a = [ 1 2 3 ] b = [ 0 3 4 ]

a & b

ans =

0 1 1

xor(a,b)

ans =

1 0 0

16. Funções Matemáticas do MATLAB

• i. Elemento a Elemento • ii. Vetores • iii. Funções de Matrizes

i. Elemento a Elemento

Certas funções do MATLAB operam essencialmente sobre escalares mas operam sobre cada elemento quando aplicados a uma matriz. Entre as mais comuns estão:

abs - valor absoluto ou magnitude do complexo

sqrt - raiz quadrada

real - parte real

imag - parte imaginária

conj - complexo conjugado

gcd - maior divisor comum

lcm - mínimo múltiplo comum

rem - calcula o resto de uma divisão

round - arredonda para o inteiro mais próximo

fix - arredonda para menor (em direção a zero)

floor - arredonda em direção a -∞

ceil - arredonda para maior (em direção a +∞ )

rat - aproximação racional

sin , sinh - seno, seno hiperbólico

cos , cosh - coseno, coseno hiperbólico

tan , tanh - tangente, tangente hiperbólica

asin , asinh - arco seno, arco seno hiperbólico

acos , acosh - arco coseno, arco coseno hiperbólico

atan2 - arco tangente nos quatro quadrantes

exp - exponencial (base e)

log - logarítmo natural

log10 - logarítmo base 10

sign - função sinal (retorna 1, -1 ou 0, se o argumento for positivo, negativo ou igual a zero, respectivamente)

Exs.

A = [ 1 2 3; 4 5 6]

B = fix(pi*A)

B =

3 6 9 12 15 18

C = cos(pi*B)

C =

-1 1 -1 1 -1 1

[round(-2.3) fix(-2.3) floor(-2.3) ceil(-2.3) ]

ans =

-2 -2 -3 -2

ii. Vetores

Outras funções operam essencialmente sobre vetores, mas se o argumento for uma matriz elas atuam a cada coluna, produzindo um vetor linha com os resultados de sua aplicação.

max - maior valor

min - menor valor

mean - média (valor médio)

std - desvio padrão

sum - soma dos elementos

prod - produto dos elementos

sort - classifica em ordem crescente

Ex.

A = [ 1 2 3; 4 5 6; 7 8 0 ];

mean(A)

ans =

4 5 3

Algumas funções lógicas e relacionais mais comuns são:

any - any(x) retorna 1 se qualquer dos elementos do vetor x for não nulo e 0 caso contrário.

all - all(x) retorna 1 se todos os elementos de x forem diferentes de zero.

find - find(x) retorna os índices dos elementos não nulos de x.

OBS. Se x for uma matriz, retorna os índices dos elementos não nulos empilhando x por coluna.

finite - finite(x) retorna 1’s para os elementos de x que forem finitos.

isnan - isnan(x) retorna 1’s para os elementos de x que forem NaN.

isinf - isinf(x) retorna 1’s para os elementos de x que forem ∞ .

OBS 1. Redução à uma condição escalar sobre uma matriz pode ser realizada como no seguinte exemplo: any(any(x)).

OBS 2. Operação a cada linha (em vez de a cada coluna) pode ser obtida com o uso de transpostas, por exemplo, mean(x’)’.

Exs:

a = [ 1 2 3 ] b = [ 1 4 6]

find (b>2)

ans =

2 3

finite(a)

ans =

1 1 1

iii. Funções de Matrizes

O poderio do MATLAB assenta-se sobre o grande número de funções disponíveis para argumentos do tipo matriz. Algumas das mais úteis estão relacionadas a seguir.

inv - inversa

det - determinante

size - retorna as dimensões da matriz

norm - norma (norma-1, norma-2, norma-F, norma-∞ )

rank - determina o posto

cond - determina o número de condição da matriz (medida quantitativa de quão mal condicionada é a matriz)

eig - calcula autovalores e autovetores

svd - calcula decomposição em valores singulares

poly - retorna coeficientes do polinômio característico

qr - fatoração QR

rref - forma escalonada por linha (row echelon) reduzida

expm - exponencial de matriz

sqrtm - raiz quadrada de matriz

Algumas funções pedem múltiplos argumentos de entrada, por exemplo,

teta = atan2 (v,u)

Outras retornam dois ou mais valores de saída, por exemplo,

[V,D] = eig(A)

retorna uma matriz D diagonal com os autovalores de A na diagonal principal, e a matriz V de autovetores normalizados, correspondentes aos autovalores de A.

A = [ 1 2 3; 4 5 6; 7 8 0]

[V,D] = eig(A)

V =

1.0000 0.4238 -0.3142

-0.8810 1.0000 -0.4418

0.1246 0.9046 1.0000

D =

-0.3884 0.0000 0.0000

0.0000 12.1229 0.0000

0.0000 0.0000 -5.7345

Outro exemplo é,

[y,k] = max(X)

que retorna o valor máximo y encontrado no vetor X e o índice k do elemento correspondente. Outro exemplo ainda é,

[m,n] = size(A)

que retorna as dimensões m (linhas) e n (colunas) da matriz A.

É interessante notar que algumas dessas funções podem ser usadas com menos variáveis de saída. Por exemplo,

z = eig(A)

retorna um vetor coluna z contendo os autovalores de A.

Ao concluir esta seção, acrescenta-se que o MATLAB Básico possui um conjunto bem extenso (vide Anexo) de funções nas categorias: matemática elementar, construção de matrizes, cálculo matricial, análise de dados, decomposições e fatorações de matrizes, polinomiais, processamento de sinais. Essas funções são fornecidas como funções intrínsecas ou como M-files. Toolboxes especializados ampliam esses recursos e o usuário também pode criar novas funções.

17. Sub-matrizes, Indexação e a Notação :

• i. Gerar Vetores • ii. Acessar Submatrizes

Manipulações bastante complicadas efetuadas sobre matrizes podem ser realizadas, de forma compacta, utilizando-se a notação : , como se verá na seqüência.

i. Gerar vetores

x = 1: 5 resulta,

x =

1 2 3 4 5

y = 0 : pi/4 : pi resulta,

y =

0.0000 0.7854 1.5708 2.3562 3.1416

z = 5 : -1 : 1 resulta,

z =

5 4 3 2 1

Os comandos,

x = (0.0 : 0.1 : 2.0)’;

y = exp(-x) .* sin(x);

[x y]

geram a tabela,

ans =

0 0

0.1000 0.0903

0.2000 0.1627

0.3000 0.2189

1.9000 0.1415

2.0000 0.1231

Obs. As funções linspace e logspace também podem ser usadas para gerar vetores.

ii. Acessar Submatrizes

Matrizes podem ser extraídas de outras maiores.

Ex. Seja A uma matriz 10x10:

A = A(1:3, :) redefine a matriz A como sendo a matriz formada pelas três primeiras linhas e todas as colunas da matriz A atual.

A(1:4,2) submatriz 4x1 formada pelos quatro primeiros elementos da 2ª coluna de A.

A(1:5,7:10) submatriz 5x4 formada pelos elementos das cinco primeiras linhas e quatro últimas colunas.

A(:,5) quinta coluna de A

Como se viu nos exemplos acima, o caractere : sozinho como índice indica uma linha inteira ou uma coluna inteira.

Ex:

b = A(:) empilha as colunas de A formando o vetor coluna b.

Vetores podem ser usados como índices.

Exs.

A(:,[3 5 10]) = B(:,1:3) substitui a 3ª, 5ª e 10ª colunas de A pelas três primeiras colunas de B;

A(:,10:-1:1) reverte as colunas de A;

A([3,5]) vetor-linha formado com o terceiro e quinto elementos de A, numerados por coluna;

A([3;5]) vetor-coluna formado com o terceiro e quinto elementos de A, numerados por coluna ( = A([3,5])’ );

A(:,[2,4]) = A(:,[2,4]) * [1 2; 3 4] substitui a 2ª e 4ª colunas de A pelo

produto (à direita) da submatriz formada por essas duas colunas pela matriz

[1 2; 3 4];

A(:,[2 4]) = [] elimina as colunas 2 e 4 da matriz A.

A indexação com vetores cujos elementos são 1’s e 0’s (indexação lógica) também é uma forma de acessar submatrizes. Supor A uma matriz mxn e L um vetor com 1’s e 0’s, de dimensão m. Então,

A(L,:) - especifica as linhas de A cujos elementos de L não são nulos.

Ex.

A(:, [ 1 0 1 0 1 0 0 0 0 0 ] ) matriz formada pelas 1ª, 3ª e 5ª colunas de A;

x = x(x <= 3 * std(x)) remove do vetor x aqueles elementos maiores que três desvios-padrão.

18. Funções para Construção de Matrizes

As seguintes funções intrínsecas proporcionam uma maneira fácil e rápida para se criar matrizes utilitárias:

eye : eye(k), eye(size(A)) retornam uma matriz identidade de dimensão k e da mesma dimensão de A, respectivamente.

zeros : zeros(2,3), zeros(size(A)) retornam uma matriz nula de dimensão 2x3 e de mesma dimensão que A, respectivamente.

ones : ones(4,2), ones(size(A)) retornam uma matriz com 1’s, de dimensão 4x2 e de mesma dimensão que A, respectivamente.

diag : diag(x) cria uma matriz diagonal com o vetor x na diagonal principal; usando diag com mais um argumento de entrada coloca-se o vetor x em outra diagonal que não a principal; diag(A) retorna um vetor com a diagonal principal da matriz quadrada A.

rand : rand(4,3), rand(n) criam uma matriz de números aleatórios uniformemente distribuídos no intervalo (0,1), de dimensão 4x3 e nxn, respectivamente.

Obs 1. rand usada sem argumento retorna um escalar cujo valor é alterado cada vez que a função é referenciada. A fórmula usada para a semente é seed = (7^5*seed) mod(2^31-1); a semente de uma seqüência de números aleatórios (cujo valor "default" é zero) pode ser alterada com o comando rand(‘seed’,v), que faz com que a semente passe a ser v; para iniciar a semente com um valor aleatório: rand(‘seed’, fix(100*sum(clock))), que usará o relógio do computador para estabelecer o valor da semente.

Obs 2. A função randn deve ser usada para gerar números aleatórios com distribuição normal.

Algumas outras funções de uso mais restrito são magic(n) que cria uma matriz de inteiros, nxn, matriz esta que forma o chamado quadrado mágico, ou seja, linhas, colunas e diagonais têm a mesma soma; e hilb(n) que cria uma matriz de Hilbert, nxn, uma matriz bastante mal condicionada.

Obviamente, essas funções podem ser usadas para se criar matrizes maiores, por exemplo,

C = [ A eye(4) ; ones(size(A)) A^2 ]

assumindo que A possui 4 linhas.

19. Controle do Fluxo

• i. Malhas for • ii. Malhas while • iii. Condicionais e Ramificações

i. Malhas for

Ex:

for j = 1: m

for k = 1: n

A(j,k) = 1 / (j+k-1);

end

end

produz a matriz de Hilbert mxn.

ii. Malhas while

while relação

comandos

end

Os comandos são repetidamente executados enquanto a relação for verdadeira.

Ex. Construir uma matriz, aleatoriamente, que possua autovalores no intervalo [-1, 1].

M = randn(2);

while max(abs(eig(M)) >= 1,

M = randn(2);

end

Um resultado possível seria,

M =

1.2460 0.5774

-0.6390 -0.3600

que apresenta autovalores 0,9682 e –0,0823.

iii. Condicionais e Ramificações

if relação

comandos

end

Os comandos são executados somente se a relação for verdadeira.

Ex.

if m == 1, c = 7

elseif n == 3, c = 9

end

No exemplo acima, se m for igual a 1 é atuibuído o valor 7 à variável c; se m ≠ 1 mas n for igual a 3, é atribuído o valor 9 a c. Se m ≠ 1 e n ≠ 3 o valor de c não é alterado.

Obs. Um laço (for, while, if) só é executado após a finalização de sua sintaxe (comando end).

20. Traçando Gráficos no MATLAB

• i. Introdução • ii. Forma Básica • iii. Diagramas Polares • iv. Curvas no Espaço Tridimensional • v. Particionamento da Tela • vi. Títulos, Rótulos, Texto, Grade • vii. Controle de Telas e de Escalas • viii. Estilo de Linhas, Marcações e Cores • ix. Gráficos de Superfícies • x. Preparação de Grades de Dados e Plotagem • xi. Impressão de Gráficos • xii. Manipulação de Gráficos

i. Introdução

Os principais tipos de gráficos proporcionados são:

plot / plot3 : linear X-Y / linear X-Y-Z

loglog : log-log X-Y

semilogx / semilogy : semilog X-Y (eixo X logarítmico/eixo Y logarítmico, respectivamente)

polar : diagrama polar

mesh / surf : superfície malha tridimensional / superfície facetada tridimensional

stairs : próprio para sinais amostrados

hist, bar : histograma

Obs. A saída gráfica é mostrada em janela(s) diferente(s) da janela de comandos.

ii. Forma Básica

plot (Y) : produz um gráfico linear dos elementos do vetor Y pelos índices de Y. Se Y for uma matriz, é plotada uma curva para cada coluna de Y; o eixo x é rotulado de 1 a m, onde m é o número de linhas em Y.

Nesta forma básica, as escalas são estabelecidas automaticamente, bem como os eixos coordenados. Como é visto no exemplo a seguir, pode-se melhorar a saída dando-se título ao gráfico e rótulos aos eixos.

Ex.

y = [ 0 0.6 0.9 0.1 0.8 0.3 0.4];

plot(y)

title ('Gráficos - Teste 01')

xlabel ('eixo X')

ylabel ('eixo Y')

Dados dois vetores de mesma dimensão, x e y, pode-se traçar o gráfico de y versus x através do comando plot(x,y).

Ex.

t = 0 : .1 : 4*pi;

y = sin(t);

plot(t,y,'r')

title('Gráficos - Teste 02')

xlabel('t')

ylabel('sent')

Múltiplas curvas podem ser traçadas no mesmo gráfico com o comando,

plot (t1,y1,t2,y2,...,tn,yn)

que plota y1xt1, y2xt2, ..., ynxtn. Neste caso, t1, t2,...,tn podem ter tamanhos diferentes.

Ex.

t = 0 : .1 : 3*pi;

y = sin(t);

z=exp(-0.3*t) .* cos(t);

w = t .* sin(t);

plot(t,y, 'r',t,z, 'g',t,w, 'm')

xlabel('t', 'Color', 'b')

ylabel('Funções', 'Color', 'b')

title('Gráficos - Teste 03', 'Color', 'b')

text(2,0.8, 'SENO')

text(6,6, 't * SENO')

text(1,-1,'EXP * COSENO')

Neste exemplo são usadas diferentes cores para as curvas e os rótulos dos eixos e o título do gráfico são escolhidos na cor azul.

Obs 1. O comando plot(x,Y), x vetor e Y matriz, plota as linhas ou colunas de Y versus x. A seleção de linhas ou colunas é feita em função do casamento com o número de elementos em x. Para Y quadrada, são plotadas as colunas de Y versus x.

Obs 2. O comando plot(X,Y), X e Y matrizes de mesma dimensão, plota as colunas de Y versus as colunas de X.

Obs 3. Quando o argumento para plot é complexo, a parte imaginária é ignorada exceto quando o argumento for único, onde então é plotada a parte real versus a parte imaginária. Portanto, plot(Z), Z matriz complexa, é equivalente a plot(real(Z),imag(Z)).

iii. Diagramas Polares

Ex 1. Traçar a função r = cos(2θ ) num diagrama polar.

th = (pi/200 : pi/200 : 2*pi)' ;

r = cos(2*th);

polar(th,r) , grid

Obs. 1 Usar o comando hold se houver necessidade de adicionar múltiplas curvas ao mesmo gráfico.

Obs. 2 Reticulado pode ser incluído e removido de um gráfico (grid on, grid off).

Ex 2. Plotar a função R = k θ , k = 1 / 2π , num diagrama polar.

R = th / (2*pi) ;

polar (th,R), grid

iv. Curvas no Espaço Tridimensional

plot3(x,y,z) : produz uma perspectiva (projeção bi-dimensional) da curva linear-por-partes que passa pelos pontos cujas coordenadas são os elementos de x, y e z, vetores de mesma dimensão.

Ex. Seja a curva parametrizada,

t = 0.01 : .05 : 10*pi;

x = cos(t); y = sin(t); z = t .^3;

plot3(x,y,z,'r')

Obs. O comando zlabel permite acrescentar um rótulo ao eixo z.

v. Particionamento da Tela

A tela pode ser particionada em até quatro janelas, permitindo, deste modo, mostrar vários gráficos simultaneamente. O comando para isso é:

subplot(r,c,p)

A tela é particionada em r x c janelas e p é a janela atual. Por exemplo, subplot(2,1,2) particiona a tela em duas janelas na vertical e coloca o gráfico corrente na segunda janela.

Ex:

clf ; % limpa a tela gráfica

wt = 0 : 0.05 : 3*pi;

x = sin(wt);

y = sin(wt - pi/4);

subplot(1,2,1), plot(wt,x,'r',wt,y,'g'); xlabel('wt - radianos’)

subplot(1,2,2), plot (x,y,'b');

xlabel('x=sen(wt)'); ylabel('y=sen(wt-pi/4)')

vi. Títulos, Rótulos, Texto, Grade

title('Título','Propriedade1', 'Valor1', 'Propriedade2', 'Valor2')

xlabel('Rótulo do eixo-X','Propriedade1, 'Valor1')

ylabel('Rótulo do eixo-Y')

zlabel('Rótulo do eixo-Z')

grid : coloca reticulado no gráfico.

gtext('Texto para anotação'); % texto posicionado na tela pelo mouse

text(x,y,'Texto para anotação'); % coloca o texto na posição especificada por x e

% y, nas unidades do último gráfico

vii. Controle de Tela e de Escalas

shg : mostra a tela gráfica;

clf : limpa a tela gráfica;

hold on, (hold off) : mantém (ou não) o gráfico atual na tela tal que outros gráficos podem ser superpostos (nos mesmos eixos).

gcf : retorna o número da figura atual;

figure : abre uma nova janela para gráficos; figure(k) expõe a k-ésima figura e a torna a figura atual.

As escalas dos eixos são estabelecidas automaticamente. Para alterar o ajuste inicial assumido, usa-se o comando axis ([x_min,x_max,y_min,y_max]), em seguida ao comando plot. O comando axis sozinho retorna os limites dos eixos em uso; axis(‘auto’) propicia ajuste automático dos eixos; axis(axis) fixa os limites de eixos nos valores atuais; axis(‘equal’) estabelece incrementos iguais para os eixos; axis(‘normal’) restaura o padrão normal; axis(‘off’) apaga todos os rótulos e marcas dos eixos; axis(‘image’) ajusta "razão de aspecto" e limites dos eixos para representar imagens com pixels quadrados.

Obs. Para gráficos tridimensionais:

axis([x_min, x_max, y_min, y_max, z_min, z_max])

viii. Estilos de Linhas, Marcações e Cores

O estilo da linha/símbolo utilizada na plotagem bem como a cor podem ser definidos através de um argumento para a função plot:

plot(x,y,S)

onde S é uma string de 1, 2 ou 3 caracteres (entre apóstrofos) construída a partir dos caracteres mostrados na tabela abaixo:

Símbolo Cor Símbolo Estilo da Linha

y amarela · ponto

m magenta ° círculo

c cyan x

r vermelha +

g verde ∗ asterisco

b azul − linha cheia

w branca : dois pontos

k preta –· traço-ponto

-- linha pontilhada

Obs. A ordem das cores conforme listadas na tabela acima é a seqüência pré-ajustada. Esta seqüência pode ser alterada modificando-se a propriedade ColorOrder (vide seção 20.xii).

Ex.

t = 0 : pi/100 : 2*pi;

x = sin(t);

y1 = sin(t+0.25);

y2 = sin(t+0.5);

plot(x,y1, 'r-',x,y2, 'g--')

ix. Gráficos de Superfícies

mesh : mesh(v) cria uma perspectiva tridimensional dos elementos da matriz v. A superfície em malha, criada pelo comando mesh, é definida pelas coordenadas-Z (alturas) dos pontos acima de uma grade retangular no plano X-Y.

surf : semelhante à função mesh só que a superfície é sombreada.

Supor que se queira plotar z = f(x,y), onde x e y definem o domínio de f. Procede-se como segue:

1) Definir os vetores x e y em seus intervalos de valores;

2) Gerar um plano correspondente ao domínio. A superfície em malha é construída no topo deste plano com alturas determinadas pelos valores da função;

3) O comando meshgrid produz este plano criando duas matrizes com linhas e colunas repetidas dos vetores x e y;

4) Finalmente, a função é calculada nos elementos das matrizes resultantes. A função mesh (ou a função surf) é então aplicada sobre o resultado.

Ex 1. Plotar um gráfico de superfície do valor absoluto da função,

para -3 ≤ σ ≤ 3 e -3 ≤ ω ≤ 3.

w = linspace(-3,3,50); % cria vetor com 50 elementos linearmente espaçados %entre -3 e 3

s = linspace(-3,3,50);

[W,S] = meshgrid(w,s);

re = S .^2 - W .^2 + S + 1;

im = 2 * S .* W + W;

den = re + j * im;

g = 1 ./ abs(den);

mesh(s,w,g)

Obs. 1 O ponto de visada do gráfico pode ser alterado através do comando view (azimute, elevação).

Obs. 2 waterfall(g) produziria um gráfico semelhante ao proporcionado pelo comando mesh acima, exceto que as linhas relativas às colunas não seriam traçadas no gráfico.

Ex. 2.

n = 30; a = 1; r = 0.5;

teta = pi * (0 : 2 : 2 * n) / n;

fi = 2 * pi * (0 : 2 : n)' / n;

x = (a + r * cos(fi)) * cos(teta);

y = (a + r * cos(fi)) * sin(teta);

z = r * sin(fi) * ones(size(teta));

surf(x,y,z)

q = (a + r)/sqrt(2);

axis([-q,q,-q,q,-q,q])

Nesses tipos de gráficos é utilizada a palheta (mapa) de cores vigente. A função colormap estabelece o mapa de cores a ser utilizado, alterando o ajuste predefinido. O comando help color lista os mapas de cores. No exemplo anterior o comando,

colormap(cool(6)); % estabelece uso do mapa de cores cool ( tons variados de %violeta e azul), em seis tonalidades, no caso.

alteraria as cores utilizadas no sombreamento das superfícies do toróide.

Obs. Uma matriz definindo o mapa de cores tem dimensão nx3. Cada linha é interpretada como uma cor, onde o primeiro elemento especifica a intensidade de luz vermelha, o segundo, verde e o terceiro, azul. A intensidade da cor pode ser especificada no intervalo de 0 a 1.

x. Preparação de grades de dados e plotagem

Para se produzir um gráfico de superfície (ou de níveis) de vetores x, y e z (z = f(x,y)), z deve ser mapeado para uma grade retangular x-y. Algumas vezes os dados não estão igualmente espaçados e a função de plotagem pode exigir isso (p. ex. contour). O exemplo

a seguir mostra como se prepara grades de dados e como se gera dados igualmente espaçados, quando necessário. Basicamente faz-se uso da função griddata que interpola os dados permitindo gerar dados igualmente espaçados para fins de plotagem.

Ex. Sejam x, y, z vetores de dados espaçados de forma irregular:

x=[-1 -0.5 0. 0.2 0.8 1.4 1.7 2.5 3.5 4.0];

y=[-2 -1.2 -1.0 0 0.3 0.9 1.5 2.5 3.0 5.0];

z=[-1.5 -2.3 -1.1 0.5 1.9 3.5 2.0 0 4.8 3.1];

xmin=min(x); ymin=min(y); xmax=max(x); ymax=max(y);

xi=xmin:0.05*(xmax-xmin):xmax;

yi=ymin:0.05*(ymax-ymin):ymax;

zi = griddata(x,y,z,xi',yi); % preenche a grade definida por xi e yi interpolando % valores originais de x,y,z

contour(xi,yi,zi); % plota um gráfico de curvas de nível, tratando os valores de zi % como alturas acima de um plano definido por xi e yi.

Obs. A função contour (x,y,z) representa os valores de x e y que correspondem a um dado valor (nível) de z.

Obs. Valores de z podem ser colocados no gráfico usando-se o comando clabel (p. ex. cl = contour(xi,yi,zi); clabel(cl) ).

No exemplo acima, alternativamente poder-se-ia utilizar o comando meshgrid para se gerar a nova grade igualmente espaçada:

x1 = linspace(min(x), max(x), 8); % define a grade X

y1 = linspace(min(y), max(y), 10); % define a grade Y

[xi,yi] = meshgrid(x1,y1); % produz a nova grade

zi=griddata(x,y,z,xi,yi)

contour(x1,y1,zi)

A saída de meshgrid está mostrada abaixo; note-se que as linhas de xi são iguais assim como as colunas de yi:

xi =

-1.0000 -0.2857 0.4286 1.1429 1.8571 2.5714 3.2857 4.0000 -1.0000 -0.2857 0.4286 1.1429 1.8571 2.5714 3.2857 4.0000 -1.0000 -0.2857 0.4286 1.1429 1.8571 2.5714 3.2857 4.0000 -1.0000 -0.2857 0.4286 1.1429 1.8571 2.5714 3.2857 4.0000 -1.0000 -0.2857 0.4286 1.1429 1.8571 2.5714 3.2857 4.0000 -1.0000 -0.2857 0.4286 1.1429 1.8571 2.5714 3.2857 4.0000 -1.0000 -0.2857 0.4286 1.1429 1.8571 2.5714 3.2857 4.0000 -1.0000 -0.2857 0.4286 1.1429 1.8571 2.5714 3.2857 4.0000 -1.0000 -0.2857 0.4286 1.1429 1.8571 2.5714 3.2857 4.0000 -1.0000 -0.2857 0.4286 1.1429 1.8571 2.5714 3.2857 4.0000

yi =

-2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -1.2222 -1.2222 -1.2222 -1.2222 -1.2222 -1.2222 -1.2222 -1.2222 -0.4444 -0.4444 -0.4444 -0.4444 -0.4444 -0.4444 -0.4444 -0.4444 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 1.1111 1.1111 1.1111 1.1111 1.1111 1.1111 1.1111 1.1111 1.8889 1.8889 1.8889 1.8889 1.8889 1.8889 1.8889 1.8889 2.6667 2.6667 2.6667 2.6667 2.6667 2.6667 2.6667 2.6667 3.4444 3.4444 3.4444 3.4444 3.4444 3.4444 3.4444 3.4444 4.2222 4.2222 4.2222 4.2222 4.2222 4.2222 4.2222 4.2222 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000

A saída de griddata fornece,

zi =

-1.5000 -3.6231 -4.8905 -6.5450 -8.8930 -11.9982 -15.9128 -20.6776 -0.8296 -2.1962 -1.9195 -2.9614 -4.7177 -7.3370 -10.8129 -15.1359 1.2699 -0.1449 -0.2184 -0.2944 -1.3831 -3.6384 -6.7121 -10.5358 4.1305 2.1592 1.6928 2.2120 1.2276 -1.0675 -3.6772 -6.8095 7.3417 5.1846 4.1695 3.8075 2.0368 -0.1038 -1.6688 -3.7129 10.5542 7.8979 5.7431 3.5911 1.0790 -0.3326 0.0417 -0.6773 13.7236 10.5569 7.5749 4.6092 1.8257 0.7470 2.9854 2.6068 16.9728 13.5340 10.2637 7.2748 5.0308 4.4986 5.4081 4.2140 20.2952 16.7781 13.4694 10.5543 8.3386 7.0111 5.9422 3.8001 23.5479 20.0203 16.6766 13.6432 11.0167 8.6987 6.2321 3.1000

xi Impressão de Gráficos

O comando print faz uma cópia de alta resolução da tela gráfica para a impressora. Os valores predefinidos utilizados pelo comando print estão no M-file printopt.m; o usuário pode alterar tais valores editando este arquivo.

O comando,

print nome-do-arquivo

salva o gráfico corrente no arquivo especificado; se o arquivo especificado já existir ele é substituído pelo novo, a menos que seja usada a opção append:

print -append nome-do-arquivo

que acrescenta o gráfico corrente ao arquivo existente. Dessa forma, pode-se ter vários gráficos num mesmo arquivo.

A versão 4.2 proporciona o recurso de salvar e recarregar um gráfico. O comando,

print -dmfile nome-do-arquivo

cria um M-file contendo as informações necessárias para posteriormente reproduzir a figura. Esta versão também possibilita especificar que janela gráfica deve ser impressa, utilizando-se a opção -f. Por exemplo,

print -f2

imprime a janela de figura cujo handle (vide sub-seção xii) seja 2, qualquer que seja a janela de figura corrente. Um diagrama de blocos Simulink (software para simulação de sistemas dinâmicos, integrado ao Matlab) pode ser impresso usando-se o título da janela, por exemplo,

print -ftanques

onde tanques entitula a janela Simulink.

Obs. Caso linhas e textos estejam aparecendo na cor preta embora especificadas diferentemente numa impressora colorida, alterar (editando) o arquivo printopt.m, colocando a opção -dwinc em vez de -dwin.

Pode-se salvar figuras geradas no MATLAB em quatro formatos de modo que possam ser exportadas para outros programas baseados em Windows:

print -dbitmap nome-do arquivo % formato Windows Bitmaps (*.bmp)

print -dmeta nome-do-arquivo % formato Windows Metafile (*.wmf)

print -dhpgl nome-do-arquivo % formato HP Graphic Language (*.hgl)

print -deps nome-do-arquivo % formato Encapsulated Postscript (*.eps)

A opção Copy do menu Edit na janela da figura também pode ser usada para se transferir uma figura do MATLAB para outra aplicação Windows.

O formato PostScript é o que apresenta o melhor resultado gráfico mas uma impressora compatível com PostScript tem que ser usada e as figuras, uma vez criadas, não podem ser editadas. O formato HPGL pode ser lido por muitas aplicações não baseadas em Windows mas os arquivos gerados costumam ser muito grandes. O formato Bitmap é o que propicia menor resolução entre os formatos acima mas todas as cores são capturadas. O formato Windows Metafile é capaz de produzir gráficos de qualidade próxima a obtida no formato PostScript mas os arquivos só podem ser lidos por programas baseados no Windows.

Obs. Na versão 4.2 em diante, como sugestões para exportar gráficos no formato Windows Metafile: (1) desabilitar a opção "Copy options: Honor Figure Properties", no menu Edit da janela da figura; (2) digitar o comando system_dependent(14,'on') antes de gerar a figura.

xii Manipulação de Gráficos

Todo objeto gráfico tem um conjunto de propriedades (cor, tamanho, posição etc) associado a ele (e que pode ser especificado) no momento de sua criação. A cada objeto gráfico (figure, axes, line, text, patch, surface, image, uicontrol, uimenu) o MATLAB atribui um número denominado handle. Uma vez conhecido tal atributo, suas propriedades podem ser alteradas. Para se obter o handle de um gráfico, por exemplo, faz-se,

handle = plot(x,y)

Para se saber quais são as propriedades de um objeto gráfico e como alterá-las utiliza-se os comandos get e set. A sintaxe básica para esses comandos é como segue:

get (handle, ‘NomedaPropriedade’)

set(handle, ‘NomedaPropriedade’, ‘ValordaPropriedade’)

Para se determinar o valor de uma propriedade do objeto, utiliza-se o comando get como no exemplo: c = get(handle,’color’). O comando get sem se especificar as propriedades, get(handle), retorna uma lista com todas as propriedades e valores atuais para o objeto correspondente; por exemplo, get (gcf) determina as propriedades associadas com a figura atual (no caso a do exemplo de curvas de níveis) (vide tabela abaixo, lista à esquerda). Para se determinar as propriedades de um objeto que podem ser controladas pelo usuário, tecla-se set(handle). Os pré-ajustes (default) opcionais (isto é, aqueles que podem ser alterados) são mostrados entre chaves {}; por exemplo, set(gcf) retorna, para a figura em foco, a lista à direita,

get (gcf) set(gcf)

BackingStore = on Color = [1 1 1] Colormap = [ (64 by 3) ] CurrentAxes = [0.000366211] CurrentCharacter = CurrentMenu = [1] CurrentObject = [1] CurrentPoint = [206 10] FixedColors = [

0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1

]

InvertHardcopy = on KeyPressFcn = MenuBar = figure MinColormap = [64] Name = NextPlot = add NumberTitle = on PaperUnits = inches PaperOrientation = portrait PaperPosition = [0.25 2.5 8 6] PaperSize = [8.5 11]

BackingStore: [ {on} | off ] Color Colormap CurrentAxes CurrentObject InvertHardcopy: [ on | {off} ] KeyPressFcn MenuBar: [ none | {figure} ] MinColormap Name NextPlot: [ new | {add} | replace ] NumberTitle: [ {on} | off ] PaperUnits: [ {inches} | centimeters | normalized | points ]

PaperOrientation: [ {portrait} | landscape ]

PaperPosition PaperType: [ {usletter} | uslegal | a4letter ]

Pointer: [ crosshair | {arrow} | watch | topl | topr | botl | botr | circle | cross | fleur ]

Position Resize: [ {on} | off ] ShareColors: [ no | {yes} ]

Units: [ inches | centimeters | normalized | points | {pixels} ]

PaperType = usletter Pointer = arrow Position = [70 45 500 375] Resize = on SelectionType = normal ShareColors = yes Units = pixels WindowButtonDownFcn = WindowButtonMotionFcn = WindowButtonUpFcn = ButtonDownFcn = Children = [0.000366211] Clipping = on Interruptible = no Parent = [0] Type = figure UserData = [] Visible = on

normalized | points | {pixels} ]

WindowButtonDownFcn WindowButtonMotionFcn WindowButtonUpFcn ButtonDownFcn Clipping: [ {on} | off ] Interruptible: [ {no} | yes ] Parent UserData Visible: [ {on} | off ]

Note-se que os valores válidos para BackingStore são on e off, com o valor predefinido sendo on; já Color não tem qualquer valor como propriedade uma vez que não há uma cor fixada para a figura, isto é, a cor pode ser qualquer vetor RGB válido. Algumas propriedades não apresentam valor predefinido. O comando getpref lista todas as propriedades que têm valor predefinido; alguns ajustes predefinidos são: LineColor, TextColor, TextFontSize, AxesAspectRatio, AxesLineWidth, FigureColor, FigurePosition e vários outros.

As seis últimas propriedades listadas (de ButtonDownFcn até Visible) são comuns a todos os objetos.

Uma tabela semelhante para as propriedades associadas aos eixos atuais está mostrada a seguir.

get(gca) set(gca)

AspectRatio = [NaN NaN] Box = on CLim = [0 1] CLimMode = auto Color = none CurrentPoint = [ (2 by 3) ] ColorOrder = [ (6 by 3) ] DrawMode = normal

AspectRatio Box: [ on | {off} ] CLim CLimMode: [ {auto} | manual ] Color: [ {none} ] -or- a ColorSpec. ColorOrder DrawMode: [ {normal} | fast ] FontAngle: [ {normal} | italic |

FontAngle = normal FontName = Helvetica FontSize = [12] FontStrikeThrough = off FontUnderline = off FontWeight = normal GridLineStyle = : LineStyleOrder = - LineWidth = [0.5] NextPlot = replace Position = [0.13 0.11 0.775 0.815] TickLength = [0.01 0.025] TickDir = in Title = [69.0001] Units = normalized View = [0 90] XColor = [1 1 1] XDir = normal Xform = [ (4 by 4) ] XGrid = off XLabel = [66.0001] XLim = [-1 4] XLimMode = manual XScale = linear XTick = [-1 0 1 2 3 4] XTickLabels =

-1 0 1 2 3 4

XTickLabelMode = auto XTickMode = auto YColor = [1 1 1] YDir = normal YGrid = off YLabel = [67.0001] YLim = [-2 5] YLimMode = manual YScale = linear YTick = [ (1 by 8) ] YTickLabels =

oblique ]

FontName FontSize FontStrikeThrough: [ on | {off} ] FontUnderline: [ on | {off} ] FontWeight: [ light | {normal} | demi | bold ]

GridLineStyle: [ - | -- | {:} | -. ] LineStyleOrder LineWidth NextPlot: [ new | add | {replace} ] Position TickLength TickDir: [ {in} | out ] Title Units: [ inches | centimeters | {normalized} | points | pixels ] View XColor XDir: [ normal | {reverse} ] Xform XGrid: [ on | {off} ] XLabel XLim XLimMode: [ {auto} | manual ] XScale: [ {linear} | log ] XTick XTickLabels XTickLabelMode: [ {auto} | manual ] XTickMode: [ {auto} | manual ] YColor YDir: [ {normal} | reverse ] YGrid: [ on | {off} ] YLabel YLim YLimMode: [ {auto} | manual ] YScale: [ {linear} | log ] YTick YTickLabels YTickLabelMode: [ {auto} | manual ] YTickMode: [ {auto} | manual ] ZColor

-2 -1 0 1 2 3 4 5

YTickLabelMode = auto YTickMode = auto ZColor = [1 1 1] ZDir = normal ZGrid = off ZLabel = [68.0001] ZLim = [-1 1] ZLimMode = auto ZScale = linear ZTick = [-1 0 1] ZTickLabels = ZTickLabelMode = auto ZTickMode = auto ButtonDownFcn = Children = [ (9 by 1) ] Clipping = on Interruptible = no Parent = [1] Type = axes UserData = [] Visible = on

ZDir: [ {normal} | reverse ] ZGrid: [ on | {off} ] ZLabel ZLim ZLimMode: [ {auto} | manual ] ZScale: [ {linear} | log ] ZTick ZTickLabels ZTickLabelMode: [ {auto} | manual ] ZTickMode: [ {auto} | manual ] ButtonDownFcn Clipping: [ {on} | off ] Interruptible: [ {no} | yes ] Parent UserData Visible: [ {on} | off ]

Todos os objetos gráficos são armazenados hierarquicamente. Essa hierarquia pode ser inspecionada através das propriedades ‘parent’ e ‘children’. Vide Apêndice para uma listagem das propriedades dos objetos gráficos e MATLAB Reference Guide e MATLAB Release Notes para uma documentação mais completa a respeito deste assunto.

Seguem-se alguns exemplos de como alterar propriedades dos objetos.

O primeiro exemplo mostra como trocar a cor da linha em um gráfico; supor o gráfico gerado pela função fplot:

fplot(‘humps’, [0 2]); % gera gráfico da função humps

L1=fplot(‘humps’, [0 2]);

set (L1, ‘Color’, ‘r’); % troca a cor da linha do gráfico para vermelho.

Para se alterar a largura de linha,

set (h, ‘LineWidth’, size)

onde h é o identificador (handle) para uma linha e size é a largura que se deseja (pré-ajuste é de 0.5). Para se alterar a fonte usada nos rótulos dos eixos,

set (h, ‘FontName’, fonte)

Usando gca (de "get current axis") ou gcf (de "get current figure") como o handle no comando get ou set, pode-se alterar as propriedades dos eixos atuais ou da figura atual. Por exemplo, para se alterar o valor de pré-ajuste para as linhas de eixos,

set (gca, ‘LineWidth’, 10) % qualquer linha plotada a partir deste comando terá %uma largura de 10

Para se alterar para courier a fonte dos rótulos dos eixos antes de serem criados,

set (gca, ‘FontName’, ‘courier’)

Para se especificar um dos extremos de um eixo deixando o outro extremo ser auto-escalonado, p. ex. o limite mínimo do eixo-x em zero e o limite máximo auto-escalonado,

set(gca, 'XLim', [ 0 Inf ])

e o limite máximo em 40, deixando o limite mínimo ser auto-escalonado,

set(gca, 'XLim', [ -Inf 40])

Para se tornar invisíveis os eixos,

set (gca, ‘Visible’, ‘off’)

Para especificar que tipos de linhas e a ordem em que devem ser usadas, por exemplo,

set(gca, 'LyneStyleOrder', ' - | -- | : ')

Para alterar a cor do título do eixo atual para vermelho,

set(get(gca,'Title'), 'Color', 'r')

Para se estabelecer o pré-ajuste de cor dos eixos para a figura corrente,

set (gcf,’DefaultAxesColor’, [0 1 0])

Todos os eixos criados nesta janela de figura serão verdes; se alguma outra janela de figura for criada, a cor dos eixos voltará a ser a original. Para se estabelecer a cor verde como sendo a cor predefinida para os eixos das figuras para a sessão completa do MATLAB,

set (0,’DefaultAxesColor’, [0 1 0])

Para se alterar a ordem das cores no gráfico atual,

set(gca,'ColorOrder', [ 0 0 0])

O último argumento no comando acima é qualquer vetor RGB.

Para se alterar a cor de fundo de um gráfico de preto para branco, teclar cinvert. Para tornar branco o pré-ajuste, incluir uma linha no arquivo startup.m com o comando whitebg.

Para se alterar a cor da janela da figura para outra diferente de branca ou preta, p. ex. vermelha,

set (gcf, ‘Color’, ‘red’)

Para se ajustar o tipo do papel, por exemplo, para ‘A4’,

set (0,’DefaultFigurePaperType’, ‘A4’)

Após se alterar o valor de uma propriedade pode-se querer reverter este valor a uma situação anterior; para isso, usa-se uma das opções: default, factory ou remove no comando set. Por exemplo, preto é o valor original instalado para cor e supor que o valor de pré-ajuste tenha sido alterado para verde. Então,

set(gcf, ’Color’, ‘factory’) % torna a figura novamente preta

set(gcf, ‘Color’, ‘default’) % torna a figura novamente verde

Utiliza-se remove para se desistir de valores pré-ajustados pelo usuário; no exemplo,

set(0, ‘DefaultFigureColor’, ‘remove’) %remove a cor verde como pré-ajuste

21. M-files

• i. Script • ii. Function

Consistem de uma seqüência de comandos MATLAB, armazenados como arquivos em disco e recebendo denominação com extensão .m (tipo do arquivo). M-files são usados para se automatizar uma seqüência longa de comandos ou para se incluir novas funções no

MATLAB. Um M-file pode referenciar outros M-files, inclusive ele mesmo, recursivamente. Há dois tipos de M-files: script e function.

i. Script

Um m-file do tipo script consiste de uma seqüência normal de comandos MATLAB.

Ex.

% Um m-file para calcular números de Fibonnaci

f = [ 1 1 ]; k = 1;

while f(k) + f(k+1) < 1000

f(k+2) = f(k) + f(k+1);

k = k + 1;

end

stem(f)

Este arquivo foi gravado com o nome FIBNO.M. Entrando-se o comando fibno, o MATLAB executa os comandos em FIBNO.M, calculando os primeiros números da série de Fibonnaci e criando um gráfico:

Obs. Para editar m-files, usar um editor de arquivos tipo texto.

ii. Function

Em um m-file do tipo function a primeira linha traz a palavra function, dando ao m-file o mesmo status das outras funções do MATLAB. As variáveis definidas dentro de um m-file são variáveis locais, contudo, podem ser declaradas como variáveis globais através da declaração global (vide seção 22). Argumentos podem ser passados para uma função.

Ex.

function y = mean(x)

% MEAN calcula o valor médio. Para vetores, mean(x) retorna o valor médio. %Para matrizes, mean(x) é um vetor linha contendo o valor médio de cada coluna.

[m,n] = size(x);

if m = = 1

m = n; % trata vetor linha isolado

end

y = sum(x)/m;

Esta função está gravada num arquivo de nome mean.m e é referenciada da forma z=mean(v), por exemplo.

Obs . A função fplot proporciona uma maneira eficiente para se plotar um gráfico de uma função. Por exemplo, seja expnormal.m o M-file contendo a função,

function y = expnormal(x)

y = exp(-x .^2)

O comando fplot('expnormal', [-2,2]) produz o gráfico da função no domínio x indicado.

Na versão 4.2 do MATLAB, a função pode ser definida através de uma expressão simbólica, evitando-se, com isso, a criação de um M-file. No exemplo dado,

fplot('exp(-x^2')', [-2,2])

É possível escrever uma function que tenha uma outra function como parâmetro, esta última definida ou nomeada através de uma string (vide seção 23).

Ex. Definir uma function que calcula uma função f(x) real, em intervalo e incremento de x definidos como parâmetros e que gere uma tabela de valores de x, f(x).

function tab = ftab1(f, x0, xn, deltax)

% f : string com a definição ou o nome da função a ser calculada

% nos valores x = x0 + n * deltax.

% O resultado é colocado em forma de tabela: x , f(x).

%

x = x0 : deltax : xn;

y = eval(f); % f deve ser função de x.

tab = [ x ; y ]’;

Então, o comando,

tab = ftab1('humps(x)', 0.1,2,0.1)

onde a definição da função humps pode ser conferida através do comando type humps, retorna o resultado,

tab =

0.1000 15.4706

0.2000 45.8868

0.3000 96.5000

0.4000 47.4483

0.5000 19.0000

……................

1.6000 -3.5250

1.7000 -4.0218

1.8000 -4.3811

1.9000 -4.6494

22. Variáveis Globais

Todas as variáveis no MATLAB são armazenadas em um espaço-de-trabalho-base (cujo conteúdo é mostrado pelo comando whos). M-files do tipo funções têm seus próprios espaços-de-trabalho; as variáveis definidas no espaço de trabalho de uma função são removidas da memória automaticamente, quando retorna-se da função. Um M-file do tipo script armazena as suas variáveis no espaço de trabalho do qual foi chamada; isto é, se foi chamada da linha de comando do MATLAB as variáveis são armazenadas no espaço-de-trabalho-base, enquanto que se foi chamada de uma função, suas variáveis são armazenadas no espaço de trabalho da função e removidas quando a função retorna. Há um terceiro tipo de espaço de trabalho, denominado global, onde as variáveis globais são armazenadas (seu conteúdo pode ser visualizado pelo comando whos global). As variáveis de um outro espaço de trabalho podem ser declaradas globais através do comando,

global nome-da-variável

Como todas as funções usam o mesmo espaço de trabalho global, para se evitar conflitos de suas variáveis deve-se procurar escolher nomes que sejam únicos para todas as variáveis globais.

Ao se apagar uma variável do espaço de trabalho local (usando clear nome-da-variável), quebra-se o elo entre as variáveis local e global mas não se apaga a variável global. Ao se apagar uma variável do espaço de trabalho global (usando-se clear global nome-da-variável) apaga a variável dos espaços de trabalho global e local.

23. Strings

Uma seqüência de dados alfanuméricos (texto) define uma string e é fornecida entre apóstrofos.

Ex.

s = 'Sistemas'

s =

Sistemas

O texto é armazenado em um vetor, um caractere por elemento.

Ex.

size(s)

ans =

1 8

Os caracteres são armazenados como valores ASCII e a função abs determina esses valores:

abs(s)

ans =

83 105 115 116 101 109 97 115

A concatenação de texto é feita como no seguinte exemplo:

s = [s , ' Dinâmicos']

s =

Sistemas Dinâmicos

MATLAB tem disponível algumas funções aplicadas a variáveis do tipo string. Por exemplo,

disp ('Uma nova iteração vai ser iniciada')

mostra o texto entre apóstrofos na tela.

24. Entrada de Dados pelo Teclado

A função input permite que o usuário forneça dados interativamente, pelo teclado. Por exemplo, o comando em um M-file,

n = input ('Fornecer o número de iterações: ')

faz com que a mensagem seja mostrada na tela e há uma pausa no programa enquanto o usuário digita o dado de entrada; ao pressionar a tecla enter o dado é atribuído a n e a execução tem prosseguimento.

25. Retorno Momentâneo ao Sistema Operacional

O uso do símbolo ! permite retornar ao sistema operacional, sem sair do ambiente MATLAB. Assim, um arquivo pode ser editado ou impresso, um programa pode ser

compilado ou executado, e assim por diante, no meio de uma sessão MATLAB. Por exemplo, o comando

!edit humps.m

remete o controle para o sistema operacional e ativa o editor edit para a edição do arquivo humps.m; ao término, isto é, ao sair do editor, o controle retorna ao MATLAB no ponto em que foi deixado.

26. Uso de subrotinas em C ou FORTRAN

O recurso MEX-file do MATLAB, que conecta dinamicamente, em tempo de execução, o programa MATLAB a subrotinas em C ou FORTRAN, permite chamar uma subrotina em C ou FORTRAN de dentro de um programa MATLAB e vice-versa, isto é, chamar uma função MATLAB de dentro de uma subrotina C ou FORTRAN. Para chamar uma função MATLAB de dentro de um programa C ou FORTRAN: iniciar MATLAB e chamar o programa; este assume o controle e pode então acessar qualquer função MATLAB. Uma outra maneira é usar as subrotinas C ou FORTRAN fornecidas no pacote MATLAB que permitem iniciar o MATLAB, enviar dados e comandos para ele, obter dados de volta e terminar o MATLAB.

27. Operações em Arquivos (I/O)

As funções fread, fwrite e fprintf são usadas para ler e escrever dados em um arquivo identificado. Estas funções permitem especificar o formato de leitura ou gravação.

Exs.

idr = fopen('dados.m','r'); % abre o arquivo de dados e define um identificador %para ele

F = fread(idr); % lê todo o arquivo colocando os dados na matriz F

idw = fopen('magic5.bin','wb');

fwrite(idw,magic(5),'integer*4'); % grava um arquivo binário contendo os 25 %elementos da matriz gerada por magic(5), armazenados como inteiros de %4-bytes.

x = 0:0.1:1; y = [x; exp(x)];

idp = fopen('exp.txt','w');

fprintf(idp,'%6.2f %12.8f\n',y); % cria um arquivo texto contendo a tabela da %função exponencial armazenada em y no formato especificado no segundo %argumento do comando

Para informações mais completas sobre estes comandos, o leitor pode lançar mão do recurso de ajuda (help) on-line do MATLAB.

28. Trajeto de Busca do MATLAB

O trajeto ("path") de busca de funções pelo MATLAB está na variável matlabpath e é definido no arquivo matlabrc.m . Ao teclar-se o comando path esse caminho é mostrado na tela. Durante uma sessão, para se incluir algum diretório no trajeto de busca do MATLAB pode-se proceder da seguinte maneira:

P = path % coloca em P uma string contendo o trajeto atual

path(P, 'c:\diretorio') % inclui no trajeto o diretório especificado na string

variável Fs e informação de formato do arquivo .wav na variável Formato. A informação de formato é um vetor de 6 elementos,

Formato(1) Formato dos dados (sempre PCM)

Formato(2) Número de canais

Formato(3) Taxa de amostragem (Fs)

Formato(4) bytes per second, amostragem média

Formato(5) Alinhamento em bloco dos dados

Formato(6) Bits por amostra

Obs. wavread atualmente aceita somente um canal de dados de 8 bits.

wavwrite Grava um arquivo .wav; wavwrite(y,Fs,wavefile):

y Os dados amostrados a serem gravados

Fs Taxa na qual os dados foram amostrados

wavefile Uma string com o nome do arquivo .wav a ser criado

Obs. wavwrite cria um arquivo .wav de dados de 8 bits, um canal.

saxis Escalona o eixo de som; saxis([SMIN SMAX]) desabilita o escalonamento automático e ajusta o escalonamento tal que SMIN e SMAX correspondam, respectivamente, à amplitude mínima e máxima permitidas pelo hardware de som (usualmente o intervalo ± 1). Valores fora deste intervalo são grampeados; saxis(‘auto’) faz retornar ao escalonamento automático; saxis, somente, retorna SMIN e SMAX vigentes.

Obs. 1 A função saxis é análoga a axis só que o seu escalonamento se aplica a sons e não a limites gráficos.

Obs. 2 Antes de gravar um arquivo sonoro, escalonar o vetor de amostras para que fique no intervalo de -127 a 128 (8 bits) ou -32767 a 327.

Obs. 3 Caso sons ininteligíveis ou distorcidos sejam obtidos, é possível que haja necessidade de corrigir o auto-escalonamento efetuado pelo Matlab.68 (16 bits).

Há alguns arquivos .MAT no diretório \toolbox\matlab\sounds do Matlab, que contém exemplos de sons digitalizados; cada um desses MAT-file contém um vetor y com as amostras de som e um escalar Fs definindo a freqüência de amostragem associada.

Ex. 1 Carregar o arquivo train.mat, reproduzir o som (apito de uma locomotiva) e plotar o gráfico correspondente:

load train

sound(y,Fs)

t=(0:length(y)-1)/Fs;

plot(t,y)

Ex. 2 Ajustar os limites de som para ± 1 e gerar um tom de 1 Khz usando uma freqüência de amostragem de 8192 Hz. Dobrar e reduzir pela metade os limites de som e verificar o resultado audível.

saxis([-1 1])

t=(0:10000)/8192;

y=sin(2*pi*1000*t);

sound(y,8192)

saxis([-2 2])

sound(y, 8192)

saxis([-.5 .5])

sound(y,8192)

BIBLIOGRAFIA

• MATLAB User’s Guide. Massachussets, The MathWorks, Ago. 1992. • MATLAB Release Notes. Mass., The MathWorks, Jan. 1995. • MATLAB New Features Guide. Mass., The MathWorks, Mar. 1993. • SIGMON, K. - MATLAB Primer, 4th Ed. Boca Raton, CRC Press, 1994. • Frequently Asked Questions (FAQ.html), The MathWorks, Inc., junho 1996. • Technical Notes 1107, 1108, 1109, 1210, 1211, 1401 - The MathWorks, Inc., junho

1996. • The Student Edition of MATLAB, Version 4 User's Guide, The MathWorks Inc. /

Prentice-Hall, 1995. • Handle Graphics Quick Reference. The MathWorks Inc., Jan. 1995.

ANEXO - FUNÇÕES DISPONÍVEIS (MATLAB 4.2)

• Entrar e Sair do MATLAB • Arquivos e Sistema Operacional • Controle da Janela de Comandos • Comandos de Administração dos Recursos • Caracteres Especiais • Comandos de E/S, Administração do Espaço de Trabalho e suas Variáveis • Variáveis e Constantes Especiais • Operações de Matrizes • Operadores Relacionais • Operadores Lógicos • Funções Lógicas • Propriedades de Matrizes • Manipulação de Matrizes • Funções de Matrizes • Matrizes Especiais • Fatoração/Decomposição de Matrizes • Sistema de Equações Lineares e Solução de Mínimos-Quadrados • Autovalores e Valores Singulares • Funções Trigonométricas • Funções Matemáticas Elementares • Funções Especiais • Programação - Controle de Seqüência • Programação Geral e Interface com o Usuário • Hora e Data • Texto e Variáveis Alfanuméricas (Strings) • Depuração de Programa (Debugging) • Análise de Dados • Processamento de Sinais • Diferenças Finitas e Interpolação de Dados • Polinômios • Integração Numérica • Solução de Equações Diferenciais • Equações Não-Lineares e Otimização

Traçado de Gráficos

• X-Y Básico • X-Y Especializados • Impressão e Armazenamento • Anotação em Gráficos • Criação e Controle de Janelas de Figuras • Criação e Controle de Eixos • Gráficos Tridimensionais (3-D) • Objetos em 3-D

• Visualização do Gráfico 3-D

Funções para Controle de Cor e Claridade/Iluminação

o Controle de Cor o Mapas de Cores o Funções Relacionadas ao Mapa de Cor o Modelos de Claridade/Iluminação

• Criação de Objetos Gráficos • Operações em Objetos Gráficos

Propriedades de Objetos Gráficos

o Todos o Root o Figure o Axes o Uicontrol o Uimenu o Line o Text o Surface o Patch o Image

• Filmes e Animação • Som • Funções para Utilização com Matrizes Esparsas

Entrar e Sair do MATLAB

matlab inicia o MATLAB.

quit termina a sessão de MATLAB.

matlabrc Arquivo (.m) mestre, executado pelo MATLAB no início da sessão. Nele está estabelecido o trajeto do MATLAB e pré- ajustes de figuras; também chama o comando startup se o arquivo 'startup.m' existir.

Arquivos e Sistema Operacional cd Imprime o diretório corrente; cd nome-do-diretório muda diretório corrente.

cedit Estabelece editor de linhas de comandos.

delete Apaga um arquivo ou um objeto gráfico (delete(handle)).

diary diary nome-de-arquivo salva o texto (comandos e resultados) de uma sessão.

dir Lista diretórios. dir nome-do-diretório lista os arquivos no diretório.

getenv Obtém valor de variável de ambiente.

ls Lista os arquivos no diretório.

matlabroot Retorna o diretório onde MATLAB foi instalado.

pwd Mostra o atual diretório de trabalho.

tempdir Retorna o nome do diretório temporário se ele existir.

tempname Retorna um nome único, adequado para uso na criação de um arquivo temporário.

unix Executa um comando do sistema operacional UNIX.

! Retorna momentaneamente ao sistema operacional.

Controle da Janela de Comandos

clc Limpa a janela de comandos.

echo Mostra na tela cada comando que vai sendo executado.

format Estabelece o formato para mostrar os resultados numéricos.

home Retorna o cursor para o canto esquerdo superior da tela.

more Controla a paginação da janela de comandos.

Comandos de Administração dos Recursos

demo Demonstra recursos do MATLAB; isoladamente, apresenta o menu de demos.

exist exist('nome-de-arquivo') retorna 2 se o arquivo estiver no trajeto do MATLAB.

help Recurso de ajuda on-line.

info Fornece informações sobre MATLAB e The MathWorks Inc.

lasterr Última mensagem de erro gerada pelo MATLAB.

lookfor Recurso de ajuda (HELP) por palavra-chave.

path Mostra e controla o trajeto de busca do MATLAB.

subscribe Registra informações para inscrever o usuário na MathWorks como um usuário do MATLAB.

type Mostra o conteúdo de um arquivo de texto.

ver Mostra o número da versão do MATLAB e dos "toolboxes" instalados.

version Retorna a versão em uso do MATLAB.

what Lista os arquivos (.m, .mat, .mex) no diretório corrente.

whatsnew Mostra o arquivo Readme do MATLAB e seus "toolboxes".

which Localiza funções e arquivos mostrando o seu trajeto.

why Retorna resposta sucinta ao comando.

Caracteres Especiais

: indexação; geração de vetores.

( ) ordem de precedência em cálculos; envolver índices; envolver variáveis de entrada.

[ ] definir vetores e matrizes; envolver variáveis de saída.

. ponto decimal.

.. diretório ascendente.

... linha de continuação.

, separador.

; termina linhas suprimindo a sua impressão na tela.

% comentários.

! retorna ao sistema operacional.

' define string.

= efetua atribuição de variável.

Comandos de E/S, Administração do Espaço de Trabalho e suas

Variáveis

clear Limpa da memória variáveis e funções.

csvread Lê um arquivo de valores, separados por vírgulas, para uma matriz.

csvwrite Grava um arquivo a partir de uma matriz.

disp Mostra texto ou uma matriz como texto.

dlmread Lê para uma matriz um arquivo ASCII delimitado.

dlmwrite Grava a partir de uma matriz um arquivo ASCII delimitado.

doc Carrega documentação do MATLAB em hipertexto.

fclose Fecha um arquivo.

feof Testa fim de arquivo.

ferror Retorna a mensagem de erro para a operação mais recente de I/O de arquivo.

fgetl Retorna a próxima linha do arquivo-texto como uma string; sem newline.

fgets Retorna a próxima linha do arquivo-texto como uma string; com newline.

fopen Abre arquivo.

fprintf Grava dados formatados em uma arquivo.

fread Lê dados binários de um arquivo.

frewind Reinicia um arquivo aberto.

fscanf Lê dados formatados de um arquivo.

fseek Altera o indicador de posição em um arquivo.

ftell Retorna a localização do indicador de posição em um arquivo.

fwrite Grava dados binários em um arquivo.

length Retorna o tamanho de um vetor.

load Carrega variáveis gravadas em disco.

pack Reorganiza o armazenamento de variáveis na memória.

save Grava variáveis (espaço de trabalho) em disco.

size Retorna as dimensões de uma matriz.

uigetfile Localiza arquivo através de uma caixa de diálogo.

uiputfile Grava arquivo através de uma caixa de diálogo.

who Lista as variáveis correntes.

whos Lista as variáveis corrrentes (mais informações que who).

wk1read Permite importar planilha WK1 Lotus 1-2-3.

wk1write Permite exportar para planilha WK1 Lotus 1-2-3.

Variáveis e Constantes Especiais

ans Variável de trabalho (utilizada para armazenamento quando não há atribuição).

computer Retorna string contendo o computador que está executando MATLAB.

eps Precisão em ponto flutuante.

flops Retorna a contagem de operações em ponto flutuante realizadas.

i , j Unidade imaginária ( ).

inf ∞

NaN Not-a-Number (0/0, ∞ /∞ ).

nargin Retorna o número de argumentos de entrada para uma função.

nargout Retorna o número de argumentos de saída de uma função.

pi π

realmax Maior número positivo representável em ponto flutuante.

realmin Menor número positivo representável em ponto flutuante.

Operações com Matrizes

+ Soma

- Subtração

* Multiplicação

.* Multiplicação elemento-a-elemento

^ Potenciação

.^ Potenciação elemento-a-elemento

\ Divisão à esquerda

/ Divisão à direita

.\ Divisão à esquerda elemento-a-elemento

./ Divisão à direita elemento-a-elemento

cross Produto vetorial

dot Produto escalar

kron Produto tensorial de Kronecker

Operadores Relacionais

== igual a

~= não é igual a

< menor do que

> maior do que

<= menor do que ou igual a

>= maior do que ou igual a

Operadores Lógicos

& e (AND)

| ou (OR)

~ não (NOT)

xor ou exclusivo (Exclusive OR)

Funções Lógicas

all Verdadeiro se todos os elementos do vetor forem verdadeiros.

any Verdadeiro se algum elemento do vetor for verdadeiro.

exist Testa se variáveis ou funções estão definidas.

find Determina os índices dos elementos não nulos.

finite Retorna verdadeiro para os elementos finitos.

isempty Verdadeiro para matriz vazia.

isglobal Verdadeiro para variáveis globais.

ishold Verdadeiro se a opção hold estiver habilitada.

isieee Retorna se o computador utiliza aritmética de ponto flutuante padrão IEEE.

isinf Retorna verdadeiro para elemento infinito.

isletter Verdadeiro para letras do alfabeto.

isnan Retorna verdadeiro para elementos NaN (Not-A-Number).

isreal Verdadeiro se todos os elementos da matriz forem reais.

isspace Verdadeiro para caracteres: espaço em branco, newline, carriage return, tab, vertical tab, formfeed.

issparse Verdadeiro para matriz esparsa.

isstr Verdadeiro para string.

strcmp Compara variáveis do tipo string.

Propriedades de Matrizes

cond Número de condição (norma-2).

condest Estimativa do número de condição na norma-1.

det Determinante.

norm Norma (1, 2, ∞ , Frobenius).

normest Estimativa da norma-2.

null Determina base ortonormal para o espaço nulo.

orth Determina base ortonormal para o espaço imagem.

rank Posto da matriz.

rcond Estimativa do recíproco do número de condição na norma-1.

subspace Ângulo entre dois sub-espaços.

trace Traço da matriz.

Manipulação de Matrizes

diag Cria matriz diagonal ou extrai diagonais de uma matriz.

fliplr Redispõe as colunas de uma matriz invertendo a ordem dos elementos em cada linha.

flipud Redispõe as linhas de uma matriz invertendo a ordem dos elementos em cada coluna.

reshape Altera as dimensões de uma matriz.

rot90 Gira de 90º uma matriz.

tril Retorna parte triangular inferior de uma matriz.

triu Retorna parte triangular superior de uma matriz.

' Transposta

: Como único índice, empilha matriz em uma coluna.

Funções de Matrizes

expm Exponencial.

expm1 Exponencial de matriz via expansão de Padé.

expm2 Exponencial de matriz via série de Taylor.

expm3 Exponencial de matriz via autovalores/autovetores.

funm Calcula função genérica de matriz.

logm Logaritmo.

sqrtm Raiz quadrada.

Matrizes Especiais

compan Matriz companheira.

diag Matriz diagonal.

eye Matriz identidade.

gallery Matriz de teste para determinação de autovalores.

hadamard Matriz de Hadamard.

hankel Matriz de Hankel.

hilb Matriz de Hilbert.

invhilb Matriz inversa de Hilbert.

linspace Cria vetor de componentes igualmente linearmente espaçados.

logspace logspace(x,y,n) cria vetor de n componentes que estão igualmente

logaritmicamente espaçados entre e .

magic Quadrado mágico.

meshgrid Gera matrizes para gráficos 3-D.

ones Matriz de 1's.

pascal Matriz de Pascal.

rand Gera matriz de números aleatórios com distribuição uniforme.

randn Gera matriz de números aleatórios com distribuição normal.

rosser Matriz teste clássico para o problema de determinação de autovalores simétricos.

toeplitz Matriz de Toeplitz.

vander Matriz de Vandermonde.

wilkinson Matriz de teste de Wilkinson para o problema de determinação de autovalores.

zeros Matriz nula.

Fatoração/Decomposição de Matrizes

chol Fatoração de Cholesky.

eig Decomposição modal.

hess Forma de Hessenberg.

lu Fatoração (triangular superior e "triangular inferior") por eliminação de Gauss.

null Determina base para o espaço nulo.

orth Determina base ortonormal para o espaço imagem ("range").

qr Decomposição QR (triangular - unitária).

qrdelete Deleta uma coluna da fatoração QR.

qrinsert Insere uma coluna na fatoração QR.

rref Forma "row echelon" (escalonada) reduzida.

rrefmovie Seqüência de matrizes na obtenção da forma "row echelon" (escalonada) reduzida.

schur Decomposição de Schur.

svd Decomposição em valores singulares.

Sistema de Equações Lineares e Solução de Mínimos-Quadrados

chol Fatoração de Cholesky.

inv Inversa.

lscov Solução de mínimos-quadrados para matriz de covariância conhecida.

nnls Solução de mínimos-quadrados não-negativa.

pinv Pseudo-inversa.

polyfit Ajusta polinômio no sentido de mínimos-quadrados.

/ e \ Solução de sistemas de equações lineares.

Autovalores e Valores Singulares

balance Escalonamento diagonal para melhorar a precisão de cálculo de autovalores.

cdf2rdf Transforma forma diagonal complexa para a forma bloco-diagonal real.

eig Determina autovalores e autovetores.

hess Forma de Hessenberg.

pinv Pseudo-inversa.

poly Determina polinômio característico.

polyeig Resolve o problema de autovalor polinomial.

qz Autovalores e autovetores generalizados.

rsf2csf Transforma forma bloco-diagonal real para a forma diagonal complexa.

schur Decomposição de Schur.

svd Decomposição em valores singulares.

Funções Trigonométricas

acos , acosh Arco coseno, arco coseno hiperbólico.

acot , acoth Arco cotangente, arco cotangente hiperbólica.

acsc , acsch Arco cosecante, arco cosecante hiperbólica.

asec , asech Arco secante, arco secante hiperbólica.

asin , asinh Arco seno, arco seno hiperbólico.

atan , atanh Arco tangente, arco tangente hiperbólica.

cos , cosh Coseno, coseno hiperbólico.

cot , coth Cotangente, cotangente hiperbólica.

csc , csch Cosecante, cosecante hiperbólica.

sec , sech Secante, secante hiperbólica.

sin , sinh Seno, seno hiperbólico.

tan , tanh Tangente, tangente hiperbólica.

Funções Matemáticas Elementares

abs Valor absoluto.

angle Ângulo de fase.

cart2pol Transforma coordenadas cartesianas para polares.

cart2sph Transforma coordenadas cartesianas para esféricas.

ceil Arredonda em direção a ∞ .

conj Complexo-conjugado.

exp Exponencial base e.

expint Calcula integral da função exp(-t)/t.

fix Arredonda em direção ao zero.

floor Arredonda em direção a -∞

gcd Maior divisor comum.

imag Parte imaginária.

lcm Mínimo múltiplo comum.

log Logaritmo natural (base e).

log2 Logaritmo base 2 e desmembra números em ponto-flutuante.

log10 Logaritmo base 10.

pol2cart Transforma coordenadas polares para cartesianas.

pow2 2 elevado à alguma potência; escalona números em ponto- flutuante.

rat Aproximação racional.

rats Saída no formato racional.

real Parte real.

rem Resto de uma divisão.

round Arredonda para o inteiro mais próximo.

sign Função sinal.

sph2cart Transforma coordenadas esféricas para cartesianas.

sqrt Raiz quadrada.

Funções Especiais

bessel Função de Bessel.

besseli Função de Bessel modificada de primeira espécie.

besselj Função de Bessel de primeira espécie.

besselk Função de Bessel modificada de segunda espécie.

bessely Função de Bessel de segunda espécie.

beta Função beta.

betainc Função beta incompleta.

betaln Logaritmo da função beta.

ellipj Função elíptica de Jacobi.

ellipke Integral elíptica completa.

erf Função erro.

erfc Função erro complementar (1 - erf)

erfcx Função erro complementar escalonada.

erfinv Função erro inversa.

expint Integral de (exp(-t)/t) dt.

gamma Função gama.

gammainc Função gama incompleta.

gammaln Logaritmo da função gama.

legendre Funções de Legendre.

Programação - Controle de Seqüência

break Interrompe a execução de laços for e while.

else Usado com o comando if.

elseif Usado com o comando if.

end Usado para terminar os comandos if, for, while.

error Mostra mensagem e aborta a execução da função.

for Repete comandos por um número de vezes especificado.

if Condiciona execução de comandos.

return Retorna para o ponto em que a função foi chamada.

while Repete comandos enquanto condição especificada for verdadeira.

Programação Geral e Interface com o Usuário

errordlg Cria uma caixa de diálogo de erro.

eval Executa string contendo uma expressão MATLAB.

feval Executa uma função especificada por uma string.

function Define M-file tipo function (função).

global Define variáveis globais.

helpdlg Mostra uma caixa de diálogo de ajuda (help).

input Permite requisitar fornecimento de dados pelo teclado.

keyboard Suspende a execução de uma rotina e permite que o usuário entre e execute novos comandos pelo teclado; a rotina é continuada após o usuário digitar return.

lasterr Última mensagem de erro emitida pelo MATLAB.

menu Gera um menu de escolhas para entrada do usuário.

nargchk Verifica número de argumentos de entrada.

pause Força uma parada até que se pressione uma tecla.

questdlg Cria uma caixa de diálogo de perguntas.

rbbox Caixa (rubberband box) para seleção de região em gráfico.

uigetfile Caixa de diálogo para obter o nome de um arquivo existente.

uiputfile Caixa de diálogo para especificar o nome de um novo arquivo.

warndlg Cria uma caixa de diálogo para advertências (warning).

Hora e Data

clock Retorna vetor de seis elementos contendo data e hora atual, formato decimal.

cputime Tempo de CPU (Unidade Central de Processamento) utilizado pelo MATLAB.

date Retorna string com data atual.

etime Retorna tempo transcorrido entre dois momentos especificados.

tic , toc Aciona e faz a leitura de um cronômetro, respectivamente.

Texto e Variáveis Alfanuméricas (Strings) abs Converte uma string em valores numéricos.

blanks Uma string de espaços em branco.

deblank Remove espaços em branco do final de uma string.

dec2hex Converte inteiro decimal em (string) hexadecimal.

eval Executa uma expressão MATLAB definida através de uma string.

findstr Acha uma string dentro de outra.

hex2dec Converte (string) hexadecimal em inteiro decimal.

hex2num Converte (string) hexadecimal em número em ponto flutuante, precisão dupla.

int2str Converte número inteiro em string.

isletter Verdadeiro para letras do alfabeto.

isspace Detecta espaços; Verdadeiro para espaços em branco.

isstr Testa (True) se é uma string.

lower Converte letras maiúsculas em letras minúsculas numa string.

num2str Converte um número numa representação alfanumérica (string).

setstr Considera valor numérico como representação de caractere alfanumérico.

sscanf Lê string com controle de formato.

sprintf Grava dados formatados em uma string.

strcmp Compara variáveis do tipo alfanumérico (string).

strrep Localiza e substitui string.

str2mat Forma matriz de texto a partir de strings individuais.

str2num Converte uma string representando um número em sua representação numérica.

strtok Identifica a primeira parte (token) numa string, identificada por caractere delimitador.

upper Converte letras minúsculas em letras maiúsculas numa string.

Depuração de Programa (Debugging) dbclear Cancela ponto de quebra (breakpoint).

dbcont Retoma a execução.

dbdown Altera o contexto do espaço de trabalho local para a função chamada.

dbquit Sai do modo debug.

dbstack Lista cadeia de funções chamadas (quem chama quem).

dbstatus Lista todos os breakpoints em uma função (m-file).

dbstep Permite executar uma ou mais linhas do programa antes de retornar ao modo de depuração (debug).

dbstop Estabelece um ponto de quebra (breakpoint) numa função (m- file) MATLAB.

dbtype Lista um m-file numerando as linhas.

dbup Altera o contexto do espaço de trabalho para o programa que chama a função.

mexdebug Habilita depuração de Mex-file.

Análise de Dados

cumprod Retorna os produtos cumulativos dos componentes.

cumsum Retorna as somas acumuladas dos componentes.

hist Plota histograma.

max Determina maior componente.

mean Determina média ou valor médio.

median Determina mediana ou valor mediano.

min Determina menor componente.

prod Determina o produto dos elementos.

sort Classifica em ordem crescente.

std Determina desvio padrão.

sum Determina a soma dos elementos.

Processamento de Sinais

abs Determina magnitude de número complexo.

angle Determina ângulo de fase de número complexo.

conv Convolução de seqüências.

conv2 Convolução em duas dimensões (2-D).

corrcoef Coeficientes de correlação.

cov Matriz de covariância.

cplxpair Classifica números em pares complexo-conjugados, parte real crescente.

deconv Deconvolução de seqüências.

filter Implementa filtragem digital.

filter2 Implementa filtragem digital bidimensional.

fft Transformada rápida de Fourier.

fft2 Transformada rápida de Fourier bidimensional.

fftshift Desloca a fft centralizando o espectro.

ifft Transformada inversa de Fourier.

ifft2 Transformada inversa de Fourier bidimensional.

nextpow2 Maior potência de 2 mais próxima.

unwrap Elimina saltos nos ângulos de fase.

Diferenças Finitas e Interpolação de Dados

del2 Calcula Laplaciano.

diff Calcula diferenças ou derivadas.

gradient Calcula gradiente.

griddata Interpola dados, permitindo gerar dados igualmente espaçados para plotagem.

interp1 Interpolação de dados (unidimensional).

interp2 Interpolação de dados (bidimensional).

interp3 Interpolação de dados (bidimensional) biharmônica.

interp4 Interpolação de dados (bidimensional) bilinear.

interp5 Interpolação de dados (bidimensional) bicúbica.

interp6 Interpolação (bidimensional) pelo vizinho mais próximo.

interpft Interpolação de dados via interpolação na transformada de Fourier.

spline Interpolação por splines cúbicas.

Polinômios

conv Multiplica polinômios; convolução.

deconv Divide polinômios; deconvolução.

poly Constrói polinômio a partir de suas raízes.

polyder Calcula derivada de polinômio.

polyfit Efetua ajuste polinomial de dados.

polyval Calcula polinômio.

polyvalm Calcula polinômio para uma matriz de valores.

residue Efetua cálculo de resíduos para expansão em frações parciais.

roots Determina as raízes de um polinômio.

roots1 Determina as raízes de um polinômio (método de Laguerre).

Integração Numérica

quad Integração numérica usando a regra de Simpson recursiva.

quad8 Integração numérica usando a regra de Newton-Cotes adaptativa.

trapz Método trapezoidal.

Solução de Equações Diferenciais

ode23 Método de Runge-Kutta de 2ª/3ª ordens.

ode23p Resolve através de ode23 plotando o resultado.

ode45 Método de Runge-Kutta-Fehlberg de 4ª/5ª ordens.

Equações Não-Lineares e Otimização

fmin Minimiza função de uma variável.

fmins Minimiza função de várias variáveis.

fplot Traça o gráfico de uma função.

fsolve Determina zero de uma função de várias variáveis.

fzero Determina zero de função de uma variável.

Traçado de Gráficos

X-Y Básico

loglog Gráfico usando eixos logarítmicos.

plot Plota vetores e matrizes, gráfico linear.

semilogx Gráfico em escala semilog (eixo x).

semilogy Gráfico em escala semilog (eixo y).

X-Y Especializados

bar Gráfico de barras.

comet Mostra um gráfico animado tipo "cometa".

compass compass(Z) traça um gráfico que mostra ângulo e magnitude dos elementos complexos de Z como setas emanando da origem.

errorbar Traça gráfico acrescentando barras (representando faixas) especificadas de erros.

feather feather(Z) traça um gráfico que mostra o ângulo e magnitude dos elementos complexos de Z como setas emanadas de pontos igualmente espaçados ao longo de um eixo horizontal.

fill Gráfico na forma de polígonos cheios.

fplot Plota uma função.

hist Traça histogramas.

polar Gráfico em coordenadas polares.

rose Histograma de ângulos.

stairs Gráfico tipo "escada" (apropriado para sinais amostrados).

stem Plota seqüências discretas.

zoom Permite ampliar (trecho de) gráfico 2-D.

Impressão e Armazenamento

print Imprime gráfico ou salva gráfico em um arquivo.

printopt Configura pré-ajustes da impressora local.

orient Especifica orientação do papel da impressora.

Anotação em Gráficos

ginput Retorna as coordenadas de pontos de um gráfico selecionados com o mouse ou o cursor.

grid Faz reticulado no gráfico.

gtext Permite colocar texto em posições assinaladas com o mouse no gráfico.

legend Coloca uma legenda em um gráfico.

text Permite inserir texto em posições especificadas no gráfico.

title Coloca título.

xlabel Coloca rótulo no eixo-x.

ylabel Coloca rótulo no eixo-y.

zlabel Coloca rótulo no eixo-z.

Criação e Controle de Janelas de Figuras

clf Apaga a figura.

close Fecha janela.

figure Cria janela de gráfico.

gcf Obtém o identificador (handle) da figura corrente.

graymon Estabelece pré-ajustes de figuras gráficas para terminal não-colorido.

refresh Ocasiona a janela de figura corrente ser redesenhada.

whitebg Altera para branca o pré-ajuste da cor de fundo da figura gráfica.

Criação e Controle de Eixos

axes Cria eixos em posições arbitrárias.

axis Define escalas e aparência dos eixos.

caxis Escalonamento de pseudo-cores dos eixos.

cinvert Inverte fundo entre o branco e o preto para adequação da saída impressa.

cla Apaga eixos atuais.

gca Retorna o identificador (handle) do eixo corrente.

hold Mantém o gráfico atual.

ishold Retorna 1 se a condição hold estiver ligada (on)

newplot Preâmbulo para M-file gráficos, para tratar a propriedade NextPlot.

subplot Particiona a tela gráfica para permitir mostrar simultaneamente mais de um gráfico.

terminal Estabelece o tipo do terminal gráfico.

Gráficos Tridimensionais (3-D) clabel Acrescenta rótulos dos níveis em gráficos tipo curvas de níveis (contour).

comet3 Gráfico animado tipo "cometa" , em 3-D.

contour Gráfico tipo curvas de níveis.

contour3 Gráfico tipo curvas de níveis em 3-D

contourc Cálculo dos níveis (para plotagem de curvas de níveis).

fill3 Gráfico tipo polígonos preenchidos, no espaço tridimensional.

image Mostra imagem.

imagesc Escalona dados e os mostra como uma imagem.

mesh Gráfico de superfície tipo malha, em 3-D.

meshc Gráfico combinado mesh-contour.

meshz Gráfico tipo mesh 3-D com um plano de referência definido.

pcolor Gráfico tipo pseudo-cores.

plot3 Plota linhas e pontos no espaço tridimensional (3-D).

quiver Plota gráfico utilizando pequenas setas nos pontos especificados.

slice Plota fatias de um gráfico volumétrico.

surf Gráfico de superfície, em 3-D, sombreado.

surfc Combinação surf-contour.

surfl Gráfico tipo superfície sombreada 3-D, com iluminação

waterfall Gráfico tipo waterfall (semelhante a mesh, sem o quadriculado).

Objetos em 3-D

sphere Gera uma esfera.

cylinder Gera um cilindro.

peaks Função obtida transladando e escalonando uma distribuição Gaussiana.

Visualização do Gráfico 3-D

axis Altera características (aparência e escalonamento) dos eixos.

caxis Altera escalonamento de eixos pseudo-cores.

colorbar Mostra mapa de cores na forma de uma barra (escala) de cores.

colormap Estabelece a tabela (look-up table) de cores.

hidden Liga (desliga) modo de remoção de linhas em um gráfico tipo mesh.

rotate Gira um objeto gráfico de um certo ângulo, em uma direção especificada.

shading Controla o sombreamento colorido.

surfnorm Retorna/mostra normal à superfície especificada.

view Especifica ponto de visualização (situação de um observador) para um gráfico 3-D.

viewmtx Gera matrizes de transformação de visualização.

zoom Ampliação de gráfico (2-D).

Funções para Controle de Cor e Claridade/Iluminação

Controle de Cor

caxis Altera características de pseudocores.

colormap Estabelece a tabela (look-up table) de cores.

contrast Mapa de escala cinza para realçar o contraste em uma imagem.

shading Controla o sombreamento colorido.

Mapas de Cores

bone Escala cinza com tintura de azul.

contrast Escala cinza reforçando o contraste da imagem.

cool Tons de violeta (cyan) e azul magenta.

copper Linear nos tons de cobre.

flag Alternante em vermelho, branco, azul e preto.

gray Linear na escala cinza.

hot Preto-vermelho-amarelo-branco.

hsv Mapa de cor com saturação das cores primárias (vermelho- verde-azul).

jet Variante of HSV.

pink Tons pastéis de cor-de-rosa.

prism Cores do arco-íris.

white Branco monocromático.

Funções Relacionadas ao Mapa de Cor

brighten Torna o mapa de cores mais brilhante ou mais escuro.

hsv2rgb Converte mapa de cores hsv para rgb.

pcolor Plota um mapa ( palheta) de cores, em formato de tabuleiro, em correspondência aos valores dos elementos do argumento.

rgb2hsv Converte mapa de cores rgb para hsv.

rgbplot Plota a composição de um mapa de cores em termos das cores primárias.

spinmap Gira o mapa de cores.

Modelos de Claridade/Iluminação

diffuse Retorna a refletância difusa para uma superfície especificada.

specular Retorna a refletância especular para uma superfície especificada.

surf1 Superfície sombreada 3-D com iluminação de uma fonte de luz.

Criação de Objetos Gráficos

axes Cria eixos em posições arbitrárias.

figure Cria janela de figura.

image Cria imagem.

line Cria objeto gráfico do tipo linha.

patch Cria objeto gráfico do tipo patch.

surface Cria objeto gráfico do tipo superfície.

text Adiciona texto em um gráfico.

uicontrol Cria controle de interface de usuário na janela de figura corrente.

uimenu Cria menu de interface com o usuário.

Operações em Objetos Gráficos

delete Elimina um objeto gráfico.

drawnow Completa qualquer traçado/desenho pendente.

gco Retorna identificador (handle) do objeto gráfico corrente.

get Retorna o valor da propriedade especificada para o objeto gráfico.

reset Restabelece eixo ou figura.

rotate Gira um objeto gráfico de um ângulo em torno de uma direção especificada.

set Estabelece propriedades para objetos gráficos.

Propriedades de Objetos Gráficos

Todos

ButtonDownFcn MATLAB String

Clipping [ on | off ]

Interruptible [ no | yes ]

Parent Somente leitura

UserData Qualquer coisa (dados extras, comentários etc)

Visible [ on | off ]

Root CaptureRect Retângulo

CurrentFigure Handle da figura

Diary [ on | off ]

DiaryFile Nome-de-arquivo

Echo [ on | off ]

Format [short | long | shortE | longE | hex | bank | + | rat]

FormatSpacing [ loose | compact ]

PointerLocation Ponto

ScreenDepth Inteiro

TerminalOneWindow [ no | yes ]

TerminalProtocol [ none | x | tek401x | tek410x | tek41xx | regis ]

Units [ inches | centimeters | normalized | points | pixels ]

Figure

BackingStore [ on | off ]

Color Especificação de cor

Colormap Mapa de cores

Current Axes Handle dos eixos

CurrentObject Handle do objeto

InvertHardcopy [ on | off ]

KeyPressFcn MATLAB string

MenuBar [ none | figure ]

MinColormap Inteiro

Name String

NextPlot [ new | add | replace ]

NumberTitle [ on | off ]

PaperUnits [ inches | centimeters | normalized | points ]

PaperOrientation [ portrait | landscape ]

PaperPosition Retângulo

PaperType [ usletter | uslegal | a4letter ]

Pointer [ crosshair | arrow | watch | topl | topr | botl | botr | circle | cross | fleur ]

Position Retângulo

Resize [ on | off ]

ShareColors [ no | yes ]

Units [ inches | centimeters | normalized | points | pixels ]

WindowButtonDownFcn MATLAB string

WindowButtonMotionFcn MATLAB string

WindowButtonUpFcn MATLAB string

Axes

AspectRatio Matriz 1x2

Box [ on | off ]

CLim Matriz 1x2

CLimMode [ auto | manual ]

Color [ none ] ou especificação de cor

ColorOrder Mapa de cores

DrawMode [ normal | fast ]

FontAngle [ normal | italic | oblique ]

FontName String

FontSize Escalar

FontWeight [ light | normal | demi | bold ]

GridLineStyle [ - | -- | : | -. ]

LineStyleOrder String (de estilo de linha)

LineWidth Escalar

NextPlot [ new | add | replace ]

Position Retângulo

TickLength Retângulo

TickDir [ in | out ]

Title String

Units [ inches | centimeters | normalized | points | pixels ]

View Matriz 1x2 [ azimute, elevação ]

Xcolor Especificação de cor

Xdir [ normal | reverse ]

Xform Matriz 4x4

Xgrid [ on | off ]

XLabel String

XLim Matriz 1x2 [xmin, xmax]

XLimMode [ auto | manual ]

XScale [ linear | log ]

Xtick Vetor

XTickLabels String

XTickLabelMode [ auto | manual ]

XTickMode [ auto | manual ]

YColor Especificação de cor

YDir [ normal | reverse ]

YGrid [ on | off ]

YLabel String

YLim Matriz 1x2 [ymin, ymax]

YLimMode [ auto | manual ]

YScale [ linear | log ]

YTick Vetor

YTickLabels String

YTickLabelMode [ auto | manual ]

YTickMode [ auto | manual ]

ZColor Especificação de cor

ZDir [ normal | reverse ]

ZGrid [ on | off ]

ZLabel String

ZLim Matriz 1x2 [zmin, zmax]

ZLimMode [ auto | manual ]

ZScale [ linear | log ]

ZTick Vetor

ZTickLabels String

ZTickLabelMode [ auto | manual ]

ZTickMode [ auto | manual ]

Uicontrol BackgroundColor Especificação de cor

CallBack MATLAB string

ForegroundColor Especificação de cor

HorizontalAlignment [ left | center | right ]

Max Escalar

Min Escalar

Position Retângulo

String String

Style [ pushbutton | radiobutton | checkbox | edit | text | slider | frame |

popupmenu ]

Units [ inches | centimeters | normalized | points | pixels ]

Value Escalar

Uimenu

Accelerator Caractere

BackgroundColor Especificação de cor

CallBack MATLAB string

Checked [ on | off ]

Enable [ on | off ]

ForegroundColor Especificação de cor

Label String

Position Retângulo

Separator [ on | off ]

Line

Color Especificação de cor

EraseMode [ normal | background | xor | none ]

LineStyle [ - | -- | : | -. | + | o | * | . | x ]

LineWidth Escalar

MarkerSize Escalar

Xdata Matriz

Ydata Matriz

Zdata Matriz

Text Color Especificação de cor

EraseMode [ normal | background | xor | none ]

FontAngle [ normal | italic | oblique ]

FontName String

FontSize Escalar

FontWeight [ light | normal | demi | bold ]

HorizontalAlignment [ left | center | right ]

Position Retângulo

Rotation Escalar

String String

Units [ inches | centimeters | normalized | points | pixels |data]

VerticalAlignment [ top | cap | middle | baseline | bottom ]

Surface

CData Matriz

EdgeColor [ none | flat | interp ] ou especificação de cor

EraseMode [ normal | background | xor | none ]

FaceColor [ none | flat | interp | texturemap ] ou especificação de cor

LineStyle [ - | -- | : | -. | + | o | * | . | x ]

LineWidth Escalar

MarkerSize Escalar

MeshStyle [ both | row | column ]

XData Matriz

YData Matriz

ZData Matriz

Patch

CData Matriz

EdgeColor [ none | flat | interp ] ou especificação de cor

EraseMode [ normal | background | xor | none ]

FaceColor [ none | flat | interp ] ou especificação de cor

LineWidth Escalar

XData Matriz

YData Matriz

ZData Matriz

Image

CData Matriz

XData Matriz

YData Matriz

Filmes e Animação

getframe Retorna frame de um filme (movie).

movie Passa os frames gravados de um filme.

moviein Inicializa a memória para guardar frames de filmes.

Som

lin2mu Conversão linear para lei-µ .

mu2lin Conversão de lei-µ para linear.

saxis Escalona eixo de som.

sound Converte vetor em som.

wavread Carrega arquivo formato .wav

wavwrite Grava arquivo formato .wav

Funções para Utilização com Matrizes Esparsas

colmmd Grau mínimo em coluna.

colperm Reordena colunas.

condest Estima o número de condição (norma-1).

dmperm Decomposição de Dulmage-Mendelsohn.

etree Árvore de eliminação de uma matriz.

find Acha índices dos elementos não nulos.

full Converte matriz esparsa em matriz completa.

gplot Desenha um grafo.

issparse Verdadeiro se a matriz for esparsa.

nnz Número de elementos não nulos.

nonzeros Elementos não nulos.

normest Estima a norma-2.

nzmax Armazenamento alocado para os elementos não nulos.

randperm Vetor de permutação aleatória.

spalloc Aloca memória para os elementos não nulos.

sparse Cria matriz esparsa; converte matriz completa em esparsa.

sparsfun Função auxiliar para acesso à estrutura interna de dados esparsos.

spaugment Forma sistema aumentado de problema de mínimos quadrados.

spconvert Converte de um formato esparso externo.

spdiags Extrai e cria matriz diagonal esparsa.

speye Matriz esparsa com 1's na diagonal principal.

spfun Aplica uma função somente aos elementos não nulos.

spones Substitui elementos nulos por 1's.

spparms Ajusta parâmetros em rotinas para matrizes esparsas.

sprandn Matriz esparsa aleatória.

sprandsym Matrizes simétricas aleatórias.

sprank Posto estrutural de matriz esparsa.

spy Visualiza a estrutura esparsa.

symbfact Análise de fatoração simbólica.

symmmd Grau mínimo de matriz simétrica.

symrcm Ordenamento reverso de Cuthill-McKee