Professional Documents
Culture Documents
0. INTRODUO
0.1 O que o Matlab?
No essencial, uma ferramenta de software orientada para o clculo numrico, e com grandes capacidades de representao grfica.
1. INTRODUO AO MATLAB
1.1 Apresentao do Matlab 1.2 Ambiente Matlab
Generalidades sobre o ambiente Matlab. Atribuir uma varivel, e mostrar o que sucede no navegador do Wokspace e na Command Window.
1.2.5 Profiler
GENERALIDADES
uma ferramenta para anlise do desempenho de cdigo Matlab, e pode-se abrir usando o Menu Desktop > Profiler (mais informao no livro, ou no Help).
1.4 Variveis
1.4.1 Definio de variveis
Exemplo 1.4.1_01 Clculo de uma rea, usando variveis. Exemplo 1.4.1_02 Auto-atribuio. Exemplo 1.4.1_03 Expresso ilegal, porque est mal escrita. Exemplo 1.4.1_04 Expresso ilegal, porque inclui uma varivel no definida. Para saber qual o n mximo de caracteres intrepretados num identificador, usa-se o comando namelengthmax. A formao de identificadores segue as mesmas regras do C++, portanto, tambm case-sensitive. Para saber se um identificador pode ser usado, pode-se usar o comando isvarname <nome da varivel>, que retorna 1 ou 0. Alguns identificadores (variveis) que esto pr-definidos: o pi nmero pi. o realmin e realmax menor e o maior nmeros que podem ser armazenados. o nargin e nargout nmero de argumentos de entrada e de sada de uma funo. o Inf nmero + . o NaN (Not-a-Number) resultado indeterminado, e.g, 0/0. o eps Help: eps returns the distance from 1.0 to the next largest doubleprecision number, that is eps = 2^(-52) = 2.2204e-016. o ans (Answer) varivel (esta sim) que guarda o valor do resultado da ltima operao efectuada. Exemplo 1.4.1_05 "Multicomando", e escrita de um comando em linhas sucessivas.
Impresso de um string (texto) na janela de comandos, usando a funo disp. Exemplo 1.4.2_03 Impresso de um string e de um valor na janela de comandos, usando a funo disp, a funo num2str, e a concatenao (sintaxe de formao de arrays).
1.4.3 Formatos
Exemplo 1.4.3_01 Utilizao do comando format para estabelecer o formato de apresentao dos valores (livro, p. 27).
1.5.2 Exponenciao
Para as operaes de exponenciao, o Matlab tem as seguintes funes: exp, log, log10, log2, e sqrt. A funo nextpow2 mais para informticos. Exemplo 1.5.2_01 Uma ilustrao de uma igualdade matemtica envolvendo logaritmos.
1.5.4 Arredondamentos
Exemplo 1.5.4_01 Ilustrao das funes fix, round, floor, e ceil. (Para mais funes, ver o Help.)
2. MATRIZES
2.1 Conceito de matriz 2.2 Definio de vectores linha e coluna
Exemplo 2.2_01 Algumas formas de construir vectores de reais. Exemplo 2.2_02 Algumas formas de construir vectores de complexos. Ateno aos espaos: [1 4 7-2i] e [1 4 (7 - 2i)] tm 3 elementos; [1 4 7 -2i] tem 4. Exemplo 2.2_03 Construo de vectores com a notao dois pontos, x0:inc:xF. Por omisso, inc = 1. Exemplo 2.2_04 Construo de vectores com a funo linspace, linspace(x1, x2, n). Por omisso, n = 100. Exemplo 2.2_05 Construo de vectores com a funo logspace, logspace(x1, x2, n). Por omisso, n = 50.
2.6.3 Potenciao
Exemplo 2.6.3_01 Potenciao pontuada com vectores. Exemplo 2.6.3_02 NO Exemplo defeituoso e intil (nem sequer est no livro). Exemplo 2.6.3_03 Potenciao pontuada com matrizes.
NO
3. GRFICOS
3.1 Introduo
O comando figure abre uma janela para edio/manipulao de figuras. O processo de criao de um grfico est resumido no livro, p. 65.
3.2 Grficos 2D
O comando help graph2d mostra uma listagem com informao resumida das funes grficas bidimensionais.
3.3 Grficos 3D
O comando help graph3d mostra uma listagem com informao resumida das funes grficas tridimensionais.
3.3.3 Cenas 3D
GENERALIDADES
Exemplo 3.3.3.01_01 Mostrar apenas os grficos. Utilizao da funo view para escolher a orientao do grfico.
Traado de grficos de barras, usando a funo bar. Exemplo 3.5.3_02 Mostrar apenas os grficos. Algumas variaes de grficos de barras, usando a funo bar, e a funo bar3. (As variantes barh e bar3h produzem grficos com barras horizontais.)
NO
NO
Exemplo 3.5.8_01 Traado de grficos de funes, usando a funo fplot, e a funo ezsurf. Em fplot, pode-se acrescentar o contradomnio. A funo ezsurf inclui o ttulo e as etiquetas dos eixos. (Para outras funes semelhantes, ver o livro, ou o Help.)
10
3.6.2 Formatao
GENERALIDADES
Edio interactiva, usando o Rato e o editor de propriedades, activado atravs de: Menu View > Property Editor. Exemplo 3.6.2.01_01 Edio de linhas e marcas. (Mais informao no livro, ou no Help.) Exemplo 3.6.2.02_01 NO Mapas de cor (para controlar a cor dos objectos grficos da figura). Exemplo 3.6.2.03_01 Mostrar apenas os grficos. Texto e a notao TeX ( I ). Exemplo 3.6.2.03_02 Mostrar apenas os grficos. Texto e a notao TeX ( II ). Exemplo 3.6.2.03_03 Mostrar apenas os grficos. Texto e a notao TeX ( III ). Exemplo 3.6.2.03_04 Mostrar apenas os grficos. Texto e a notao TeX ( IV ).
GENERALIDADES
GENERALIDADES
Exemplo 3.8.1_01 Gravao de grficos, usando a funo saveas. (Mostrar tambm a gravao a partir do Menu File.)
4. OPERADORES
4.1 Operadores aritmticos
Os operadores aritmticos foram j introduzidos.
11
NO
4.3.3 Curto-circuito
Exemplo 4.3.3_01 Avaliao em curto-circuito (&&, e ||). Os operandos tm de ser escalares.
12
5. CONTROLO DE FLUXO
5.1 Ciclo for
Exemplo 5.1_01 Ciclo for com incremento constante. A funo input. Exemplo 5.1_02 Ciclo for com incremento varivel. A funo num2str. Exemplo 5.1_03 Ciclo for com ndice vectorial (varrendo as colunas de uma matriz). Exemplo 5.1_04 Ciclo for embebido. A funo fprintf.
5.3 Estrutura if
Exemplo 5.3_01 A estrutura de seleco if. Exemplo 5.3_02 A estrutura de seleco if-else. Exemplo 5.3_03 A estrutura de seleco if-elseif-else.
GENERALIDADES
13
GENERALIDADES
Exemplo 5.7_01 O bloco try-catch, para processamento de erros. As funes lasterr e lastwarn. A funo strfind. (Na linha 20 poder-se-a ter usado lasterr directamente, evitando toda a linha 19.)
14
Concatenao de strings, usando as funes strcat, e strvcat. (Contrariamente funo char, a funo strvcat ignora eventuais strings vazios.)
6.2.2 Comparao
Exemplo 6.2.2_01 Comparao de strings, usando as funes strcmp, strncmp, strcmpi, e strncmpi. (Com estas funes os strings so comparados na sua totalidade; no elemento a elemento.)
GENERALIDADES
Exemplo 6.3.2_01 As funes int2str, e num2str. (A funo num2str, por omisso, no garante um formato especfico para a representao.) (Os descritores de formato ver-se-o mais frente.) Exemplo 6.3.2_02 A funo mat2str, e a funo eval. (A funo mat2str usa sempre a mxima preciso, e, por isso mesmo, muito usada com a funo eval.) Exemplo 6.3.2_03 As funes str2double, e str2num. A funo sscanf. . (A funo str2double s funciona com escalares.)
15
NO
NO
NO
Exemplo 6.10_01 A funo fgetl, para leitura de linhas. A funo feof. (Por omisso, os ficheiros so abertos para leitura.) Exemplo 6.10_02 A funo fgets, para leitura de linhas incuindo o newline.
16
GENERALIDADES
Exemplo 7.2.1_01 Ilustrao de matriz esparsa. As funes sparse, e full. Exemplos 7.2.1_02 a 7.2.1_04
17
7.3.7 Converses
Exemplos 7.3.7.1_01 a 7.3.7.1_02 Exemplos 7.3.7.2_01 a 7.3.7.2_03
7.4.7 Converses
Exemplo 7.4.7.1_01 Converses, usando a funo cell2struct. Exemplo 7.4.7.2_01 18
8. FICHEIROS-M
Os ficheiros-M (ficheiros de cdigo Matlab) podem ser de dois tipos: os scripts e as funes. Os scripts so sequncias de comandos, e usam variveis globais. As funes admitem parmetros de entrada, e podem retornar valores (englobam o conceito de procedimento). Por omisso, as funes usam variveis locais. Para poder ser usados, os ficheiros-M tm de estar numa directoria do path, ou na directoria corrente.
8.1 Introduo
NO
No livro so apresentados os comandos what, type, e more on/off, coisas basicamente inteis.
8.2 Scripts
Os comandos echo on/off permitem ligar/desligar a visualizao das instrues medida que so executadas. Exemplo 8.2_01 Um exemplar de script (ficheiro de comandos). Execut-lo a partir da Command Window. Verificar que as variveis criadas so globais.
8.3 Funes
8.3.1 Estrutura bsica
A palavra function uma das (no muitas) palavras reservadas em Matlab. Para ver todas, executa-se o comando iskeyword (este comando tambm pode ser usado como predicado sobre uma qualquer palavra, retornando o inverso de isvarname). Exemplo 8.3.1_01 Um exemplar de function (funo). Mostrar o seu funcionamento, executando-o a partir da Command Window (o nome do ficheiro que conta). Verificar que as variveis criadas so locais. Em qualquer ponto, as funes podem ter, inseridos, comandos para: fim de execuo (return); envio de mensagem de aviso (warning); ou abortagem de execuo mais envio de mensagem de erro (error). Exemplo 8.3.1_02 Um ficheiro de comandos pode ser declarado como funo. O interesse que as variveis passam a ser locais.
19
No incio do ficheiro (habitualmente antes da declarao da funo), devem-se deixar comentrios explicativos, que tambm podero depois ser usados pelos comandos de ajuda. (O mesmo vale para os scripts.) Alguns comandos de ajuda que usam os comentrios explicativos no incio dos ficheiros-M: doc, lookfor (s as linhas sumrio), help <funo>, e help <directoria> (s as linhas sumrio). O comando which <funo> permite determinar a localizao (directoria) da funo.
8.3.3 Recursividade
Exemplo 8.3.3_01 NO Uma funo para contagem decrescente. Exemplo 8.3.3_02 Uma implementao recursiva da funo anterior. Exemplo 8.3.3_03 NO Algoritmo recursivo para o clculo da Taxa Interna de Retorno. Exemplo 8.3.3_04 NO Algoritmo recursivo para o clculo da Valor Actual Lquido. Na propriedade RecursionLimit est definido o limite mximo de invocaes recursivas disponvel. O seu valor pode ser obtido/alterado (ver livro).
NO
O comando persistent permite definir variveis que persistem em memria para futuras invocaes da funo que as criou. O comando global permite definir variveis globais. O recurso a este tipo de variveis configura, em geral, uma m prtica de programao.
NO
Quando uma funo recebe apenas strings como parmetros de entrada, a sua invocao pode ser feita com a sintaxe de comando.
8.3.6 Sub-funes
Exemplo 8.3.6_01 Um exemplo com vrias sub-funes. (As sub-funes s podem ser invocadas pela funo principal (a primeira), ou por outras sub-funes que estejam definidas dentro do mesmo ficheiro-M.)
20
NO
Exemplo 8.3.8_01 Definio e invocao de uma funo annima (dentro de um script). Exemplo 8.3.8_02 Outro exemplo com funes annimas (dentro de uma funo).
NO
Exemplo 8.3.10_01 Definio e manipulao de uma funo inline. (Por omisso, esta funo recebe os argumentos pela ordem em que esto na frmula.) As funes formula, e argnames.
GENERALIDADES
Exemplo 8.3.11_01 Passagem de funes atravs de parmetros, usando um string. A funo eval, para avaliao de expresses. Mostrar o funcionamento da funo. Exemplo 8.3.11_02 Passagem de funes atravs de parmetros, usando uma referncia (function handle). Mostrar o funcionamento da funo. Exemplo 8.3.11_03 NO A funo feval muito verstil, pois pode funcionar com strings, com referncias, e, mais ainda, com funes inline (que se podem obter a partir de expresses dentro de strings, usando a funo fcnchk). A funo vectorize permite vectorizar uma expresso ou uma funo inline definidas para escalares, transformando as operaes aritmticas em operaes pontuadas. NO NO Exemplo 8.3.11_04 Converses entre strings e referncias, usando as funes func2str, e str2func.
Exemplo 8.5.1.2_01 Ilustrao de erro de execuo. (Um exemplo de erro de execuo em C++, a diviso por zero.) Exemplo 8.5.1.3_01 Ilustrao de erro de semntica. Exemplo 8.5.1.3_02 NO Reparao do erro do exemplo anterior.
22
NO
Exemplo 9.2_01 NO Exemplo intil, que carrega dados supostamente, para uso futuro a partir de um ficheiro-MAT. Exemplo 9.2_02 Explicar, sem mostrar. Numa anlise de dados, habitual comear por os representar num grfico. (Conforme foi j visto, num grfico, pode-se usar a ferramenta Data Statistics.) Exemplo 9.2_03 Explicar, sem mostrar. As funes mean e std. (J foram vistas antes.) Exemplo 9.2_04 Explicar, sem mostrar. As funes max e min. (J foram vistas antes.) Exemplo 9.2_05 A funo sort. (Para alterar a ordem: sort(a, dim, descendent).)
23
9.3 Polinmios
9.3.1 Razes
Exemplo 9.3.1_01 Para representar um polinmio, colocam-se os seus coeficientes num vector linha, assumindo potncias decrescentes da esquerda para a direita. A funo roots. Exemplo 9.3.1_02
24
NO (ainda no deram)
10.2.2 Derivao
Exemplo 10.2.2_01 A funo diff, para derivao de expresses simblicas.
10.2.3 Integrao
Exemplo 10.2.3_01 A funo int, para integrao de expresses simblicas. Exemplo 10.2.3_02 A funo int permite escolher a varivel relativamente qual se est a integrar. Exemplo 10.2.3_03 A funo int permite resolver integrais definidos.
25
10.2.4 Limite
Exemplo 10.2.4_01 A funo limit, para clculo de limites de convergncia de uma expresso simblica. Por omisso, o clculo feito com x 0 (assumindo que x a varivel independente). Exemplo 10.2.4_02 A funo limit permite o clculo de limites esquerda e direita. Neste caso a invocao tem de incluir sempre os 4 argumentos.
10.2.5 Somatrio
Exemplo 10.2.5_01 A funo symsum, para clculo de somatrios simblicos. Por omisso, o clculo feito entre x = 0 e x = x -1 (assumindo que x a varivel independente). Exemplo 10.2.5_02 A funo symsum, com definio dos limites. (Tambm se pode definir a varivel independente (ver livro).)
26
A funo solve, para resoluo de equaes em expresso simblica, ou em string. (A expresso tem de estar na forma cannica.) Pode-se escolher a varivel em ordem qual se est a resolver a equao, fazendo solve(eq, var). Exemplo 10.4.1_02 A funo solve, para resoluo de sistemas de equaes. (As variveis so sempre apresentadas por ordem alfabtica.) Podem-se escolher as variveis em ordem s quais se est a resolver o sistema, fazendo, e.g., solve(eq1, eq2, eq3, 'var1', 'var2', 'var3').
NO (ainda no deram)
27
10.8 Transformadas
NO (ainda no deram)
12.4.1 Diagrama de Bode 12.4.2 Diagrama do lugar de razes 12.4.3 Diagrama de Nyquist 12.4.4 Margem de fase e de ganho 12.5 Resposta temporal 12.6 Projecto de compensadores 12.6.1 Tipos de compensao 12.6.2 Tcnicas de projecto 12.7 Interfaces grficas 12.7.1 Visualizador LTI 12.7.2 Interface SISO 12.8 Resumo das funes da Toolbox 13. PROCESSAMENTO DE IMAGEM 13.1 Conceitos bsicos 13.1.1 O pixel 13.1.2 O mapa de cor 13.1.3 Classes de armazenamento em memria 13.1.4 Tipos de imagem 13.2 Leitura e escrita de imagem em ficheiro 13.2.1 Leitura de uma imagem 13.2.2 Escrita de uma imagem 13.2.3 Leitura de informao sobre a imagem 13.2.4 Formato DICOM 13.3 Visualizao de imagem 13.3.1 Tcnicas bsicas de visualizao 13.3.2 Tcnicas especiais de visualizao 13.4 Aritmtica com imagens 13.4.1 Adio de imagens 13.4.2 Subtraco de imagens 13.4.3 Multiplicao de imagens 13.4.4 Diviso de imagens 13.4.5 Combinao de operaes aritmticas 13.5 Operaes sobre pixels e estatsticas 13.5.1 Operaes sobre pixels 13.5.2 Propriedades e Caractersticas 13.5.3 Estatsticas 13.6 Transformaes espaciais 13.6.1 Redimensionamento de imagem 13.6.2 Rotao de imagem 13.6.3 Recorte de imagem 13.6.4 Transformaes espaciais genricas 13.7 Melhoramento de imagem 13.7.1 Ajuste de intensidade 13.7.2 Remoo de rudo 13.8 Anlise de imagem 13.8.1 Deteco de orlas 13.8.2 Decomposio em rvore quaternria 13.9 Filtragem linear 13.9.1 Filtragem com imfilter
29
13.9.2 Filtros predefinidos 13.10 Projecto de filtros lineares 2D 13.11 Transformadas de imagem 13.11.1 Transformada de Fourier 13.11.2 Transformada de Co-seno 13.11.3 Transformada de Radon 13.11.4 Transformada de Hough 13.12 Operaes morfolgicas 13.12.1 Dilatao e eroso 13.12.2 Operaes baseadas em dilatao e em eroso 13.12.3 Reconstruo morfolgica 13.12.4 Outras operaes 13.13 Processamento de vizinhana e de blocos 13.13.1 Processamento de vizinhana deslizante 13.13.2 Processamento de blocos distintos 13.13.3 Processamento em colunas 13.14 Processamento de regies 13.14.1 Especificar uma regio 13.14.2 Filtrar uma regio 13.14.3 Preencher uma regio 13.15 Image Registration 13.16 Image Deblurring 13.17 Outras operaes 13.17.1 Reduo do nmero de cores 13.17.2 Converso entre espaos de cor 13.17.3 Converso entre tipos de imagem 13.17.4 Converso entre tipos de dados 13.17.5 Preferncias da Toolbox 13.18 Interfaces grficas 13.19 Resumo das funes da Toolbox PARTE 3 - INTERFACES GRFICAS 14. HANDLE GRAPHICS 14.1 Tipos de objectos grficos 14.1.1 Objectos grficos principais 14.1.2 Objectos de visualizao 14.1.3 Objectos de grupo 14.1.4 Objectos de anotao 14.1.5 Objectos de interface com o utilizador 14.2 Inspeco e alterao de propriedades 14.3 Localizao de objectos 14.4 Propriedades principais 14.4.1 Objecto figure 14.4.2 Objecto axes 14.4.3 Objecto text 14.4.4 Objecto line 14.4.5 Objecto annotation 14.5 Editor de propriedades 14.6 Propriedades por omisso
30
14.7 Resumo das funes Matlab 15. INTERFACES GRFICAS 15.1 Introduo 15.2 Caixas de dilogo 15.2.1 Mensagens e interrogao 15.2.2 Introduo de dados 15.2.3 Seleco de ficheiro 15.2.4 Seleco de directoria 15.2.5 Lista de seleco 15.2.6 Seleco de cor 15.2.7 Seleco de tipo de letra 15.2.8 Propriedades de pgina e impresso 15.2.9 Progresso de processamento 15.2.10 Outras 15.3 Componentes grficos 15.3.1 Figura (figure) 15.3.2 Menu 15.3.3 Sistema de eixos (axes) 15.3.4 Texto esttico (static text) 15.3.5 Texto editvel (edit text) 15.3.6 Push button 15.3.7 Toggle button 15.3.8 Checkbox 15.3.9 Radio button 15.3.10 Slider 15.3.11 Lista (listbox) 15.3.12 Popup Menu 15.3.13 Frame, Painel (panel) e Grupo de botes (button group) 15.3.14 ActiveX control 15.3.15 Barra de ferramentas (toolbar) 15.4 Ferramentas 15.4.1 Editor de Disposio (Layout Editor) 15.4.2 Inspector de Propriedades (Property Inspector) 15.4.3 Editor de Alinhamento (Alignment Tool) 15.4.4 Navegador de Objectos (Object Browser) 15.4.5 Editor de Menus (Menu Editor) 15.4.6 Editor de Ordem Tab (Tab Order Editor) 15.5 Programao da interface grfica 15.5.1 Sub-funes e callbacks 15.6 Aplicao integradora 15.6.1 Planeamento 15.6.2 Implementao - Fase I 15.6.3 Implementao - Fase II 15.7 Resumo das funes Matlab ANEXO A - NOVIDADES DO MATLAB 7 ANEXO B - TOOLBOXES BIBLIOGRAFIA NDICE REMISSIVO
31
32