Buscar

APOSTILA

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

1 
 
 
 
 
 
 
 
 
UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL-REI – UFSJ 
DEPEB – DEPARTAMENTO DE ENGENHARIA DE BIOSSISTEMAS
 MATLAB 
 
 
 Programação de Computadores e Aplicações do Cálculo Vetorial em Engenharia de Alimentos 
Keite FRANÇA 
2010 
i 
 
ÍNDICE 
 
APRESENTAÇÃO .............................................................................................................................. III 
I INTRODUÇÃO AO MATLAB ........................................................................................................... 1 
1 – AMBIENTE DE TRABALHO ......................................................................................................... 2 
2 – EDITOR DE LINHAS DE COMANDO .......................................................................................... 5 
3 – ACESSOS AO “HELP” .................................................................................................................. 7 
4 - OPERAÇÕES BÁSICAS E EXPRESSÕES LÓGICAS ............................................................. 10 
5 – CONSTANTES E VARIÁVEIS..................................................................................................... 12 
6 – COMENTÁRIOS E PONTUAÇÕES ............................................................................................ 15 
7 – FUNÇÕES MATEMÁTICAS ........................................................................................................ 16 
8 – ORDENS DOS CÁLCULOS ........................................................................................................ 20 
9 – COMANDOS DE ENTRADA E SAÍDA ....................................................................................... 21 
ENTRADA ........................................................................................................................................... 21 
SAÍDA................................................................................................................................................. 21 
10 – CONTROLADORES DE FLUXO .............................................................................................. 22 
ESTRUTURAS CONDICIONAIS .............................................................................................................. 22 
ESTRUTURA IF-END ............................................................................................................................ 22 
INSTRUÇÃO ELSE ............................................................................................................................... 23 
SWITCH CASE ..................................................................................................................................... 25 
LOOP FOR .......................................................................................................................................... 25 
COMANDO BREAK ............................................................................................................................... 26 
LOOPS WHILE ..................................................................................................................................... 26 
11 – MANIPULAÇÕES DE MATRIZES E VETORES ..................................................................... 27 
OPERAÇÕES ELEMENTO A ELEMENTO ................................................................................................ 28 
CONSTRUÇÃO DE VETORES ................................................................................................................. 29 
ENDEREÇAMENTO DE VETORES.......................................................................................................... 31 
OPERAÇÕES ENTRE VETORES.............................................................................................................. 32 
FUNÇÕES COM MATRIZES ................................................................................................................... 33 
SUBMATRIZES .................................................................................................................................... 33 
12 – GRÁFICOS NO MATLAB .......................................................................................................... 35 
GRÁFICOS BIDIMENSIONAIS ............................................................................................................... 35 
ESTILOS DE LINHA E SÍMBOLO ........................................................................................................... 38 
ESCALA .............................................................................................................................................. 39 
SUBPLOT ............................................................................................................................................ 39 
CONTROLE DE TELA ........................................................................................................................... 40 
GRÁFICOS TRIDIMENSIONAIS E CONTORNOS ...................................................................................... 40 
ANOTAÇÕES NO GRÁFICO ................................................................................................................... 42 
13 – CARACTERES E STRINGS ...................................................................................................... 43 
FUNÇÕES DE CONVERSÃO ................................................................................................................... 43 
14 – ARQUIVOS .................................................................................................................................. 44 
OS ARQUIVOS MAT ............................................................................................................................ 44 
ARQUIVOS ASCII ............................................................................................................................... 44 
FORMATOS DE ARQUIVOS SUPORTADOS PARA IMPORTAR E EXPORTAR ................................................. 45 
II CRIAÇÃO DE INTERFACES GRÁFICAS ................................................................................... 47 
15 – O QUE É UMA GUI? .................................................................................................................. 48 
ii 
 
OS MODOS DE CRIAÇÃO ...................................................................................................................... 49 
16 – OS COMPONENTES BÁSICOS DE UMA GUI ....................................................................... 50 
O INSPETOR DE PROPRIEDADES .......................................................................................................... 52 
17 – ROTEIRO PARA A CONSTRUÇÃO DE UMA GUI ................................................................ 56 
CRIANDO UMA GUI ............................................................................................................................ 56 
PROGRAMANDO A GUI ....................................................................................................................... 59 
18 – CRIANDO E MODIFICANDO MENUS ..................................................................................... 60 
A CRIAÇÃO DE MENUS E SUBMENUS NO GUIDE ................................................................................... 60 
PROPRIEDADES DOS MENUS................................................................................................................ 61 
19 – CONFIGURANDO E EXPLORANDO OS EVENTOS E AS CHAMADAS DE RETORNO 
DA GUI ................................................................................................................................................. 64 
COMANDO GET E SET .......................................................................................................................... 64 
EDIT TEXT .........................................................................................................................................
65 
RADIOBUTTON ................................................................................................................................... 65 
POP-UP MENU .................................................................................................................................... 65 
20 – ANOTAÇÕES .............................................................................................................................. 66 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
iii 
 
APRESENTAÇÃO 
 
 
O MATLAB é um software criado no fim dos anos 1970 por Cleve Moler (um 
dos fundadores da MathWorks, Inc.), o qual é destinado à análise e modelagem de 
sistemas e algoritmos. Devido à sua praticidade, essa poderosa ferramenta 
computacional vem sendo utilizada tanto em universidades quanto em empresas do 
mundo todo. 
Em relação a uma linguagem de programação tradicional (como C/C++ ou 
Fortran), o desenvolvimento de algoritmos no ambiente MATLAB é sem dúvida mais 
fácil e rápido. A desvantagem é que utilizando uma linguagem de programação 
tradicional é possível desenvolver algoritmos mais eficientes. 
O MATLAB (Matrix Laboratory) pode ser definido como um ambiente de 
computação numérica baseado em matrizes. Dentre as suas principais características, 
destacam-se: gráficos e visualização de dados; linguagem de programação de alto nível; 
toolboxes, que oferecem funcionalidades específicas por área de aplicação, dentre 
outros. 
O objetivo deste curso é fornecer a base necessária para desenvolver programas 
no ambiente MATLAB, e, desenvolver as habilidades dos alunos em construir softwares 
para resolver problemas em Engenharia de Alimentos usando o Cálculo Vetorial. 
 
 
 
 
 
 
 
 
 
 
 
 
 
1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
_________________________ 
I INTRODUÇÃO AO MATLAB 
____________________________ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 
 
1 – AMBIENTE DE TRABALHO 
 
 
Quando iniciamos o MATLAB aparece-nos uma janela (Figura 1), designada 
por Command window, através da qual iremos fazer a interação com o programa. Nela 
aparece, além de uma barra de menus, o símbolo » (prompt), que nos indica que o 
MATLAB está pronto para executar as operações e instruções por nós introduzidas. 
 
Commands to get started: intro, demo, help help 
Commands for more information: help, whatsnew, info, subscribe 
» 
 
 
 
Figura 1: Janela inicial do MATLAB, designada como Command window. 
 
Existem outras áreas que podem ser suprimidas, mas é interessante deixa-las a 
mostra para um maior controle das informações geradas pelo sistema. Na Figura 2 é 
possível observar mais 3 áreas: 
 O Current Directory (diretório atual), nesta janela pode-se observar o conteúdo 
da pasta atual (ou diretório atual). É um bom procedimento que os arquivos 
3 
 
vistos nesta janela, sejam os que se pretende utilizar. Caso contrário, o 
MATLAB não reconhecerá os comandos por não estar direcionado ao diretório 
atual. 
 Buffer (Workspace), janela onde são apresentadas as variáveis criadas, seu 
tamanho, tipo e conteúdo; 
 Command History, nesta são registrados todos os comandos ao serem digitados 
no Workspace. 
 
 
 
Figura 2: Outras áreas de controle do MATLAB. 
 
Pode ser observado também, que na parte superior da janela do MATLAB já 
aparece o Current Directory. No Workspace pode-se entrar com os comandos 
diretamente. Qualquer comando do MATLAB pode ser inserido neste lugar (Figura 3). 
 
 
Figura 3: Workspace e prompt de comando. 
4 
 
O funcionamento do prompt de comando é semelhante ao do promtp de 
comando do sistema. Vários comandos utilizados permanecem no MATLAB, e podem 
ser bastante úteis durante a programação no MATLAB (Tabela 1). 
 
Tabela 1: Comandos essenciais via prompt. 
 
5 
 
2 – EDITOR DE LINHAS DE COMANDO 
 
As teclas com setas podem ser usadas para se encontrar comandos dados anteriormente, 
para execução novamente ou sua reedição. Por exemplo, suponha que você entre com: 
 
» sen(0) 
 
Ao apertar a tecla Enter , o MATLAB responde com uma mensagem de erro: 
 
??? Undefined function or variable sen. 
 
Isto acontece porque para se determinar o seno de um ângulo é necessário digitar 
em inglês o comando sin. Ao invés de reescrever a linha inteira, simplesmente pressione 
a tecla "seta para cima". O comando errado retorna, e você pode, então, mover o 
cursor para trás usando a tecla "seta para esquerda" ou o ponto de inserção com o 
"mouse" ao lugar apropriado para inserir a letra i: 
» sin(0) 
ans = 
 0 
Note que o MATLAB chamou o resultado de ans (answer = resposta). Além das 
teclas com setas, podem-se usar outras teclas para reeditar a linha de comando. A seguir 
é dada uma breve descrição destas teclas: 
 
Tabela 2: Teclas de Edição 
 
6 
 
Exemplo 1: 
Digite: » clc (este comando apaga a tela) 
 
Exemplo 2: 
 Digite: » 258/652 , 56*48 
 
Nota: A vírgula permite que mais de um comando seja introduzido de uma só 
vez. 
ATENÇÃO: O MATLAB executa os comandos da esquerda para a direita e 
apresenta os resultados, um acima do outro, na ordem de execução!!! 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7 
 
3 – ACESSOS AO “HELP” 
 
No MATLAB, pode-se obter ajuda sobre qualquer comando ou função. Isto 
pode ser feito basicamente de três formas: interativamente através do menu de barras, 
através do comando help ou do comando lookfor. 
Digitando-se simplesmente o comando help: 
 
» help 
 
O MATLAB mostra uma listagem de todos os pacotes disponíveis. Ajuda sobre 
um pacote específico ou sobre um comando ou função específica é obtida com o 
comando help <tópico>, onde tópico pode ser o nome de um pacote, de um comando 
ou função. Por exemplo: 
 » help sin 
 
 SIN Sine of argument in radians. 
 SIN(X) is the sine of the elements of X. 
 See also asin, sind. 
 Overloaded methods: 
 codistributed/sin 
 Reference page in Help browser 
 doc sin 
 
O comando help é a maneira mais simples de se obter auxílio no caso do usuário 
conhecer o tópico em que ele quer assistência. Note que no exemplo mostrado a função 
SIN está escrita em letras maiúsculas somente para destacar. Deve-se lembrar que todos 
os comandos do MATLAB devem ser escritos em letras minúsculas. Portanto, para 
utilizar esta função deve-se digitar: 
 
» sin (x) 
 
O Comando lookfor provê assistência pela procura através de todas as primeiras 
linhas dos tópicos de auxílio do MATLAB e retornando aquelas que contenham a 
palavra-chave especificada. O interessante deste comando é que a palavra chave não 
8 
 
precisa ser um comando do MATLAB. Sua sintaxe é lookfor <palavra-chave>, onde 
palavra-chave é a cadeia de caracteres que será procurada nos comandos do MATLAB. 
Por exemplo, para se obtiver informações sobre funções para se resolver integral: 
 
>> lookfor integral 
 
ellipke - Complete elliptic integral. 
expint - Exponential integral function. 
dblquad - Numerically evaluate double integral over a rectangle. 
quad - Numerically evaluate integral, adaptive Simpson quadrature. 
quad2d - Numerically evaluate double integral over a planar region. 
quadgk - Numerically evaluate integral, adaptive Gauss-Kronrod quadrature. 
quadl - Numerically evaluate integral, adaptive Lobatto quadrature. 
triplequad - Numerically evaluate triple integral. 
assema - Assembles area integral
contributions in a PDE problem. 
ellipk - Complete elliptic integral of first kind. 
cosint - Cosine integral function. 
sinint - Sine integral function. 
 
Apesar da palavra integral não ser um comando do MATLAB, ela foi encontrada 
na descrição de 12 comandos. Tendo esta informação, o comando help pode ser usado 
para exibir informações a respeito de um comando específico, como por exemplo: 
 
» help triplequad 
 
TRIPLEQUAD Numerically evaluate triple integral. 
 Q = TRIPLEQUAD(FUN,XMIN,XMAX,YMIN,YMAX,ZMIN,ZMAX) evaluates 
the triple integral of FUN(X,Y,Z) over the three dimensional rectangular region 
XMIN <= X <= XMAX, YMIN <= Y <= YMAX, ZMIN <= Z <= ZMAX. FUN is a 
function handle. The function V=FUN(X,Y,Z) should accept a vector X and scalar Y 
and Z and return a vector V of values of the integrand. 
 
Q = TRIPLEQUAD(FUN,XMIN,XMAX,YMIN,YMAX,ZMIN,ZMAX,TOL) uses a 
tolerance TOL instead of the default, which is 1.e-6. 
9 
 
Q = TRIPLEQUAD(FUN,XMIN,XMAX,YMIN,YMAX,ZMIN,ZMAX,TOL,@QUADL) uses 
quadrature function QUADL instead of the default QUAD. 
 
Q = TRIPLEQUAD(FUN,XMIN,XMAX,YMIN,YMAX,ZMIN,ZMAX,TOL,MYQUADF) 
uses your own quadrature function MYQUADF instead of QUAD. MYQUADF is a 
function handle. MYQUADF should have the same calling sequence as QUAD and 
QUADL. Use [ ] as a placeholder to obtain the default value of TOL. QUADGK is not 
supported directly as a quadrature function for TRIPLEQUAD, but it can be called from 
MYQUADF. 
 
Example: 
Integrate over the region 0 <= x <= pi, 0 <= y <= 1, -1 <= z <= 1: 
Q = triplequad(@(x,y,z) (y*sin(x)+z*cos(x)), 0, pi, 0, 1, -1, 1) 
or 
Q = triplequad(@integrnd, 0, pi, 0, 1, -1, 1) where integrnd is the M-file function: 
%----------------------------% 
function f = integrnd(x, y, z) 
f = y*sin(x)+z*cos(x); 
%----------------------------% 
 
Note the integrand can be evaluated with a vector x and scalars y and z. 
Class support for inputs XMIN,XMAX,YMIN,YMAX,ZMIN,ZMAX and the output of 
FUN: 
 float: double, single 
 
See also quad, quadl, quadgk, quad2d, dblquad, function_handle. 
 
Reference page in Help browser 
 doc triplequad 
 
 
 
 
 
10 
 
4 - OPERAÇÕES BÁSICAS E EXPRESSÕES LÓGICAS 
 
O MATLAB oferece as seguintes operações aritméticas básicas: 
 
Tabela 3: Operações aritméticas 
 
 
A ordem nas expressões segue a ordem matemática - potência, seguida da 
multiplicação e da divisão, que por sua vez são seguidas pelas operações de adição e 
subtração. Parêntesis podem ser usados para alterar esta ordem. Neste caso, os 
parêntesis mais internos são avaliados antes dos mais externos. 
Uma expressão se diz lógica se os operadores são lógicos e os operandos são 
relações e/ou variáveis do tipo lógico. Os operadores relacionais realizam comparações 
entre valores do mesmo tipo. Os operadores relacionais utilizados pelo MATLAB são: 
 
Tabela 4: Operadores relacionais. 
 
 
Note que (=) é usado para atribuição de um valor a uma variável, enquanto que 
(= =) é usado para comparação de igualdade. No MATLAB os operadores relacionais 
podem ser usados para comparar vetores de mesmo tamanho ou escalares. O resultado 
de uma relação ou de uma expressão lógica é verdadeiro ou falso; contudo, no 
MATLAB o resultado é numérico, sendo que 1 significa verdadeiro e 0 significa falso. 
Por exemplo: 
 
 
11 
 
 >> 1 > 6 >> 2= = 2 
 ans = ans = 
 0 1 
 
Os operadores lógicos permitem a combinação ou negação das relações lógicas. 
Os operadores lógicos do MATLAB são: 
 
Tabela 5: Operações lógicas. 
 
 
A prioridade dos operadores lógicos, do mais alto ao mais baixo, é: não, e, e ou. 
Podemos combinar expressões usando os operadores lógicos do MATLAB. Os 
operadores são representados pelos seguintes símbolos. 
Quando duas expressões são unidas por e ; o resultado será 1 (verdadeiro) se 
ambas expressões forem verdadeiras, para expressões unidas por ou, o resultado será 1 
(verdadeiro) se uma ou ambas expressões forem verdadeiras. Assim, para a seguinte 
expressão lógica: 
 
a < b & b < c 
 
O resultado será 1 (verdadeiro) somente se a < b < c; e falso (0) para todos 
resultados diferentes. Além disso, a operação só será válida se as matrizes resultantes (a 
< b e b < c) tiverem o mesmo tamanho. 
Uma expressão pode conter vários operadores lógicos, como a expressão abaixo: 
 
~ (b = = c | b = = 5.5) 
 
O MATLAB analisaria primeiro, as expressões b = = c e b = = 5.5 (obviamente, 
por causa do uso de parênteses). O resultado seria inversamente pelo operador não. 
Assim, suponha b = = 3 e c = = 5. Nenhuma das expressões é verdadeira, logo, a 
expressão b = = c | b = = 5.5 é falsa. Aplicando o operador não, o valor da expressão é 
alterado e a mesma torna-se verdadeira. 
12 
 
5 – CONSTANTES E VARIÁVEIS 
 
O MATLAB faz cálculos simples e científicos como uma calculadora. Para tal, os 
comandos devem ser digitados diretamente no prompt (>>) do MATLAB, já que este se 
trata de um software interativo. Por exemplo: 
>> 3*25 + 5*12 
 ans = 
 135 
Observe que no MATLAB a multiplicação tem precedência sobre a adição. 
Uma constante numérica no MATLAB é formada por uma sequência de dígitos 
que pode estar ou não precedida de um sinal positivo (+) ou negativo (-) e pode conter 
um ponto decimal (.). Esta sequência pode terminar ou não por uma das letras e, E, d ou 
D, seguida de outra sequência de dígitos precedida ou não de um sinal de (+) ou de (-). 
Esta segunda sequência é a potência de 10 pela qual a primeira sequência deve ser 
multiplicada. Por exemplo: 
 
 >> 5.67e-1 
 significa 0,567 
 
O formato em que uma constante numérica é mostrada no MATLAB segue, 
como opção default, os seguintes critérios: se um resultado é inteiro, o MATLAB 
mostra o número como inteiro; quando o resultado é real, o MATLAB mostra o número 
com 4 dígitos à direita do ponto decimal; se os dígitos do resultado estiverem fora desta 
faixa, o MATLAB mostra o resultado usando a notação científica. 
 
Tabela 6: Formatos Numéricos 
 
 
13 
 
Alternativamente, você pode usar variáveis para armazenar informação. Por exemplo: 
 
>> q1=3, p1=25, q2=5, p2=12 
q1 = 
 3 
p1 = 
 25 
q2 = 
 5 
p2 = 
 12 
>> total = q1*p1+q2*p2 
total = 
 135 
 
Primeiro, criamos quatro variáveis, q1, p1, q2 e p2, atribuindo a elas os seus 
valores respectivos. Observe que o sinal de igual (=) aqui significa atribuição. O que 
estiver à direita do sinal de igual é “colocado” na variável que estiver à esquerda. 
Finalmente, criamos uma variável chamada total que recebeu o total da compra. 
O nome de uma variável deve começar sempre por uma letra. Nunca utilize 
caracteres especiais como # { } [ ] ( ) . , ; : ! ? % / + - * =. Procure dar nomes pequenos 
e que faça algum tipo de associação com o valor que está sendo armazenado (por 
exemplo, se for velocidade, a variável pode se chamar V). 
O sinal de igual (=) significa atribuição. O que estiver à direita do sinal de igual 
é “colocado” na variável que estiver à esquerda. 
ATENÇÃO: No MATLAB as variáveis podem ser redefinidas a qualquer 
momento, bastando para isso atribuir-lhes um novo valor. 
Os nomes das variáveis devem consistir de uma única palavra, conforme as 
regras expressas na Tabela 7: 
 
 
 
 
 
 
14 
 
Tabela 7: Regras para construção de variáveis 
 
 
Alguns nomes são usados para variáveis predefinidas, ou seja, são variáveis 
especiais do MATLAB. Estas são: 
 
Tabela 8: Variáveis do MATLAB 
 
 
Dica: Para saber se o nome da variável é
um comando interno do MATLAB, 
basta dar um >>help [nome da variável]. Caso não seja, o MATLAB retorna uma 
mensagem dizendo que a variável [nome] não foi encontrada. 
 
 
 
 
 
 
15 
 
6 – COMENTÁRIOS E PONTUAÇÕES 
 
O sinal de percentagem (%) é usado para anteceder comentários que explicam os 
comandos MATLAB. Note que ao digitar um comentário a cor muda automaticamente 
para verde. 
% ====================================== 
% Este programa calcula e imprime 
% distância, em linha reta, entre dois pontos. 
p1 = [1,5]; % ponto 1 inicial; 
p2 = [4,7]; % ponto2 inicial; 
d = sqrt (sum ((p2-p1).^2)) % calcular distância; 
% ====================================== 
 
A Tabela 9 resume os comentários e pontuações utilizados no MATLAB. 
 
Tabela 9: Comentário e pontuações 
 
 
» q1 = 3, p1 = 25, ... 
q2 = 5; p2 = 12; % Exemplo de uso da vírgula, ponto e vírgula e três pontos. 
q1 = 
 3 
p1 = 
 25 
 
Os espaços em branco entre os operadores (aritméticos, lógicos, relacionais) e as 
variáveis (ou constantes) são opcionais. O mesmo para vale para a vírgula, o ponto e 
vírgula e o símbolo de porcentagem. No entanto, o espaço em branco entre a última 
variável (ou constante) de uma linha e os três pontos é obrigatório. 
16 
 
7 – FUNÇÕES MATEMÁTICAS 
 
O MATLAB tem uma série de funções científicas pré-definidas. A palavra 
função no MATLAB tem um significado diferente daquele que tem na Matemática. 
Aqui, função é um comando, que pode ter alguns argumentos de entrada e alguns de 
saída. Algumas dessas funções são intrínsecas, ou seja, não podem ser alteradas pelo 
usuário. Outras funções estão disponíveis em uma biblioteca externa distribuídas com o 
programa original (MATLAB TOOLBOX), que são na realidade arquivos com a 
extensão “.m” criados a partir das funções intrínsecas. A biblioteca externa (MATLAB 
TOOLBOX) pode ser constantemente atualizada à medida que novas aplicações são 
desenvolvidas. 
As funções do MATLAB, intrínsecas ou arquivos ".m", podem ser utilizadas 
apenas no ambiente MATLAB. 
As categorias gerais de funções matemáticas disponíveis no MATLAB incluem: 
 Matemática elementar; 
 Funções especiais; 
 Matrizes elementares e especiais; 
 Decomposição e fatorização de matrizes; 
 Análise de dados; 
 Polinômios; 
 Solução de equações diferenciais; 
 Equações não-lineares e otimização; 
 Integração numérica; 
 Processamento de sinais. 
 
A maioria das funções pode ser usada da mesma forma que seria escrita 
matematicamente. Por exemplo: 
 
>> x = sqrt(2)/2 
x = 
 0.7071 
 
 
17 
 
>> y = acos(x) 
y = 
 0.7854 
 
>> y_graus = y * 180/pi 
y_graus = 
 45.0000 
 
As funções matemáticas elementares incluem funções para executar um número 
de cálculos comuns como o cálculo de valor absoluto e a raiz quadrada. Além disso, 
também incluímos um grupo de funções usadas em arredondamentos. Mostraremos a 
seguir uma lista destas funções com uma breve descrição, como pode ser visto na 
Tabela 10: 
 
Tabela 10: Algumas funções matemáticas 
 
 
NOTA: Deve-se tomar cuidado para não fazer confusão ao utilizar as funções 
logarítmicas. Em textos, a notação usual para o logaritmo na base natural é ln(x) – a 
função correspondente no MATLAB é log(x) - enquanto o logaritmo na base 10 é 
normalmente representado por log(x) – no MATLAB log10(x). 
Em adição, o MATLAB apresenta uma estrutura que nos permite criar funções 
sob a forma de arquivos M. Como exemplo, considere uma função que esteja em um 
arquivo-M denominado circum.m: 
% ============================================== 
function c = circum ( r) 
% CIRCUM Circunferência de um círculo de raio r. 
% Para matrizes, CIRCUM ( r ) retorna uma matriz 
18 
 
% que contêm as circunferências de círculos com raios iguais 
% aos valores no vetor original. 
c = pi*2*r; 
% =============================================== 
 
Assim, se o prompt do MATLAB apresentar: 
r = [0 1.4 pi]; 
a = circum (r ); 
 
Os elementos da matriz A corresponderão as circunferências de círculos de raios 
0, 1,4 e p, respectivamente. 
Para esta função também são válidos os comandos: 
a = 5.6; 
disp (circum(a)) 
 
c = [1.2 3; 5 2.3]; 
circum (c) ; 
 
Assim, circum passa a ser uma função MATLAB assim como ones, sin e outras. 
A parte comentada no arquivo circum.m é usada quando digitarmos help circum no 
prompt do MATLAB. 
Há algumas regras para escrever uma função de arquivo M: 
 A função deve começar com uma linha contendo a palavra function, seguida 
pelo argumento de saída, um sinal de igual, e o nome da função. Os argumentos 
para a função devem estar entre parênteses. Esta linha define os argumentos de 
entrada e saída; 
 As primeiras linhas devem ser comentários porque serão exibidas quando o 
menu help for usado juntamente com o nome da função , como help circum; 
 A única informação retornada da função é contida nos argumentos de saída, que 
são, obviamente, matrizes. Verificar se a função inclui um comando que 
assegure um valor ao argumento de saída. 
 Uma função que possui mais de uma variável de saída, como por exemplo: 
function [ dist, vel, acel] = motion (x) 
19 
 
Deve apresentar as variáveis de saída dentro de colchetes. Além disso, todos os 
valores devem ser calculados dentro da função. 
 Uma função que tenha múltiplos argumentos de entrada deve listar os 
argumentos no comando function, como mostrado no exemplo a seguir, que tem 
dois argumentos de entrada: 
function error = mse (w,d) 
 As variáveis especiais nargin e nargout podem ser usadas para determinar o 
número de argumentos de entrada passado para uma função e o número de 
argumentos de saída solicitados quando a função é chamada. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20 
 
8 – ORDENS DOS CÁLCULOS 
 
Os cálculos aritméticos são realizados sempre segundo a seguinte ordem: 
 
1) Operações dentro dos parênteses (interno → externo); 
2) Funções; 
3) Potenciação; 
4) Multiplicação e divisão; 
5) Soma e subtração. 
 
Operadores de mesma hierarquia são efetuados da esquerda para a direita. Por 
exemplo, utilizando o MATLAB, determine o valor da expressão: 
 
124
245
)10ln(4
)8,08,9( 
 
Esta expressão matemática é escrita na forma adequada para o MATLAB da 
seguinte forma: 
» ((9.8-0.8) / (4-log(10)))^(245/124) 
e o seu resultado é igual a 27.0011 . 
Observe que as vírgulas nas expressões para o MATLAB são representadas por 
pontos, pois ele utiliza a forma inglesa de representar os números decimais. 
Exemplos: 
a) 
47*45,23
256433
 b) 
))2(ln(
3
234483(
13321,3 sen
 
Os resultados são: a) 0.1606; b) 7.0567 e+003. 
 
ATENÇÃO: O resultado 0.1606 na realidade representa 0,1606. Observe também que a 
notação científica utilizada pelo MATLAB não usa o símbolo x 10exp comum em 
textos. Assim: 
1,2 x 106 ≡ 1.2 e+006 = 1.2 e 6 no MATLAB, e, 
9,9 x 10-12 ≡ 9.9 e-012 = 9.9 e-12 no MATLAB. 
 
21 
 
9 – COMANDOS DE ENTRADA E SAÍDA 
 
Os comandos de entrada e saída são responsáveis pela comunicação de dados 
entre o usuário e o espaço de trabalho do MATLAB. 
Ao trabalhar na janela de controle, a definição de um valor para uma variável e a 
sua inserção no espaço de trabalho é feita pelo usuário, utilizando o comando de 
atribuição. 
Na elaboração de programas, o programador define a utilização de uma 
determinada variável, e pode conferir valores para ela através de comando de atribuição 
ou através do comando de entrada input. Ao rodar um programa, quando encontra este 
comando, o computador interrompe temporariamente a execução e apresenta uma 
mensagem na janela de comando solicitando que o usuário entre com o valor da 
variável. Após a inserção do valor, o programa volta a rodar automaticamente. 
 
Entrada 
 
A sintaxe do comando input é a seguinte: 
 
Nome da variável = input ('mensagem') 
 
O resultado
da inserção deste comando é o aparecimento na janela de comando 
do texto. O usuário do programa irá inserir a informação solicitada. 
 
Saída 
 
Comando disp 
Caso, em algum momento ao longo de um programa, seja necessário apresentar 
uma mensagem na tela, utilize o comando disp ('mensagem'). Note que, de forma 
distinta do que ocorre com o comando input, o comando disp não para a execução do 
programa, por exemplo: 
 
» Casa = „sim‟; 
» w = input ('Entre com o valor da variável w: '); 
» disp ('Valores das variáveis Casa e w '), Casa, w 
 
22 
 
10 – CONTROLADORES DE FLUXO 
 
Estruturas Condicionais 
 
Uma estrutura condicional permite a escolha do grupo de comandos a serem 
executados quando uma dada condição for satisfeita ou não, possibilitando desta forma 
alterar o fluxo natural de comandos. 
Esta condição é representada por uma expressão lógica. 
 
Estrutura if-end 
 
A estrutura condicional mais simples do MATLAB é: 
 
if <condição> 
 <sequência de comandos> 
end 
 
Se o resultado da expressão lógica <condição> for 1 ( verdadeiro ) então a lista 
de <comandos> será executada. Se o resultado for 0 ( falso ) os <comandos > não serão 
executados. Como exemplo, temos: 
 
count=0; 
sum=0; 
a=0; 
if a < 50 
 count = count +1; 
 sum = sum + a; 
 a = a + 1; 
end 
 
Suponha que a seja um escalar. Se a < 50, então count é incrementada por 1 e a é 
adicionada à sum; caso contrário, os comandos não serão executados. Se a não for um 
escalar, então count é incrementado por 1 e a é adicionada à sum somente se cada 
elemento em a for menor que 50. 
23 
 
Instrução Else 
 
Esta instrução permite que executemos um comando se a expressão lógica é 
verdadeira e um diferente comando se a expressão é falsa. A forma geral do comando if 
combinada à instrução else é mostrada a seguir: 
 
if expressão 
 grupo de comandos A 
else 
 grupo de comandos B 
end 
 
Se a expressão lógica é verdadeira, então o grupo de comandos A é executado. 
Caso contrário, o grupo de comandos B é executado. 
Como exemplo, suponha que um táxi esteja passando entre dois edifícios. 
Considere que a variável d contenha a distância do veículo ao edifício mais próximo. Se 
o carro estiver a 10 metros do edifício, a velocidade é calculada usando a seguinte 
equação: 
 
velocidade = 0,425 + 0,00175d
2
; 
 
Se o táxi estiver a uma distância maior que 10 metros, use a equação a seguir: 
 
velocidade = 0,625 + 0,12d – 0,00025d2 
 
Calculamos a velocidade correta com estes comandos: 
if d < = 10 
 velocidade = 0.425 + 0.00175*d^2; 
else 
 velocidade = 0.625 + 0.12d – 0.00025*d^2; 
end 
Quando há muitas alternativas a serem executadas, pode ser mais difícil 
determinar quais expressões lógicas deva ser verdadeiro (ou falsa) para executar cada 
24 
 
grupo de comandos. Neste caso, a cláusula elseif é frequentemente usada para 
simplificar o programa lógico: 
 
if expressão 1 
 grupo de comandos A 
elseif expressão 2 
 grupo de comandos B 
elseif expressão 3 
 grupo de comandos C 
end 
 
Se a expressão 1 for verdadeira, somente o grupo de comandos A é executado. 
Se a expressão 1 for falsa e a expressão 2 for verdadeira, então somente o segundo 
grupo de comandos é executado. Se as expressões 1 e 2 forem falsas e a expressão 3 for 
verdadeira, então somente o grupo de comandos C é executado. Se mais de uma 
expressão lógica for verdadeira, a primeira que for verdadeira determina qual grupo de 
comandos será executado. Se nenhumas das expressões lógicas forem verdadeiras, então 
nenhum dos comandos dentro da estrutura if é executado. 
Else e elseif podem ser combinadas dentro de uma estrutura if-else-end, como 
mostramos a seguir: 
 
if expressão 1 
 grupo de comandos A 
elseif expressão 2 
 grupo de comandos B 
elseif expressão 3 
 grupo de comandos C 
else 
 grupo de comandos D 
end 
 
Se nenhuma das expressões lógicas for verdadeira, então o grupo de comandos 
D é executado. 
 
25 
 
Switch case 
 
Teste múltiplo para selecionar um dado corrente, salvando as últimas mudanças 
na estrutura. 
- String - célula que contém o conteúdo do menu. 
- Value - o índice dentro do contexto do menu, o qual contém o dado selecionado. 
O comando switch tem a estrutura a seguir: 
str = get(hObject, 'String'); 
val = get(hObject,'Value'); 
switch str{val}; 
case expressão 1 
 grupo de comandos A 
case expressão 2 
 grupo de comandos B 
case expressão N 
 grupo de comandos N 
end 
 
Loop for 
 
O comando for tem a estrutura a seguir: 
 
for variável = expressão 
 Grupo de comandos A 
End 
 
Os comandos entre as instruções for e end são executados uma vez para cada 
coluna da expressão matricial. A cada iteração, a variável é atribuída para a próxima 
coluna da matriz, isto é, durante o i-ésimo ciclo do loop, temos que variável = expressão 
matricial (: , i ). 
As regras para um loop for são: 
 Se o conjunto for uma matriz vazia, o loop não será executado. O fluxo de 
controle passará ao próximo comando após a instrução end; 
 Se a expressão for um escalar, o loop será executado uma única vez; 
26 
 
 Se a expressão for um vetor-linha, então a cada iteração a variável conterá o 
próximo valor do vetor; 
 Se a expressão for uma matriz, então a cada iteração a variável conterá a 
próxima coluna da matriz; 
 Uma vez completo o loop for a variável contém o último valor usado. 
 Se o operador dois-pontos é usado para definir a expressão matricial usando o 
formato: 
for k = início: incremento: limite 
 
Comando break 
 
O comando break pode ser usado para sair de um loop antes que o mesmo seja 
completo. É frequentemente usado se houver um erro detectado dentro do loop. 
 
Loops while 
 
O loop while é uma importante estrutura para repetição de um grupo de 
comandos quando a condição especificada for verdadeira. O formato geral para esta 
estrutura de controle é: 
 
while expressão 
 grupo de comandos A 
end 
 
Se a expressão for verdadeira, então o grupo de comandos A é executado. 
Depois de estes comandos serem executados, a condição é novamente questionada. Se 
for verdadeira, o grupo de comandos é novamente executado. Quando a condição for 
falsa, o controle pula para o comando posterior ao comando end. As variáveis 
modificadas no grupo de comandos A devem incluir as variáveis na expressão, ou o 
valor da expressão nunca será mudado. Se a expressão for verdadeira (ou é um valor 
não-nulo), o loop torna-se um loop infinito.( Lembre-se que você pode usar ^c para sair 
um loop infinito). 
 
 
 
27 
 
11 – MANIPULAÇÕES DE MATRIZES E VETORES 
 
O MATLAB possui a capacidade de realizar operações matriciais do mesmo 
modo que as operações aritméticas envolvendo escalares. Os símbolos das operações 
matriciais são mostrados na Tabela 11: 
 
Tabela 11: Símbolos das operações matriciais 
 
 
Observações: 
Divisão 
Existem dois símbolos para divisão de matrizes no MATLAB "\" e "/". Se A é 
uma matriz quadrada não singular, então A\B e B/A correspondem respectivamente à 
multiplicação à esquerda e à direita da matriz B pela inversa da matriz A, ou inv(A)*B e 
B*inv(A), mas o resultado é obtido diretamente. Em geral, 
X = A \ B é a solução de A*X = B 
X = B / A é a solução de X*A = B 
 
Exponenciação 
A expressão A^p eleva A à p-ésima potência e é definida se A é matriz quadrada 
e p um escalar. Se p é um inteiro maior do que um, a exponenciação é feita como 
múltiplas multiplicações. Por exemplo: 
Entre com a seguinte matriz: 
35
21
A
, agora faça no MATLAB: 
» A^3 
ans = 
 51 46 
 115 97 
28 
 
Operações Elemento a Elemento 
 
Além das operações tradicionais entre matrizes, o MATLAB dispõe do recurso 
das
operações elemento a elemento. Quando aplicamos uma operação elemento a 
elemento a uma matriz, a operação é aplicada separadamente a cada elemento da matriz. 
 
169
41
2.^,
43
21
AA
 
 
As principais operações elemento a elemento são mostradas na Tabela 12. 
 
Tabela 12: Operações elemento a elemento em uma matriz 
 
 
Observações: 
 
i) Para realizarmos uma multiplicação ou divisão elemento a elemento entre duas 
matrizes, estas devem ter a mesma dimensão (deve existir correspondência entre os 
elementos). 
ii) A divisão por elemento entre matrizes é definida de maneira similar à multiplicação 
por elemento, ou seja, A ./ B= ai j / bi j e A .\ B= ai j \ bi j , onde A e B têm mesma 
dimensão. 
iii) A exponenciação por elemento entre matrizes é definida de maneira similar à 
multiplicação por elemento, ou seja, A .^ B= ai j 
bi j
, onde A e B têm mesma dimensão. 
De maneira similar, a potenciação por elemento entre uma matriz e um escalar apresenta 
as seguintes formas: A .^c = ai j
 c
 e c .^ A = c ai 
j
. 
iv) As operações de soma e subtração convencionais já são naturalmente operações 
elemento a elemento, não necessitando assim de um caractere especial. 
As funções matemáticas embutidas no MATLAB (seno, exponencial, etc.) quando 
aplicadas a matrizes geram resultados do tipo elemento a elemento. 
 
29 
 
Construção de vetores 
 
Na Tabela 13, tem-se um resumo das diversas formas de se construir um vetor 
no MATLAB. 
 
Tabela 13: Construção de vetores 
 
 
Por exemplo: 
 
» x = 1 : 5 
 
gera um vetor linha contendo os números de 1 a 5 com incremento unitário. Produzindo 
x = 
 1 2 3 4 5 
 
» X = 1:10.5 
X = 
 1 2 3 4 5 6 7 8 9 10 
 
» z = 6 : -l : l 
z = 
 6 5 4 3 2 1 
 
Pode-se, também, gerar vetores usando a função linspace. Por exemplo: 
 
30 
 
» k = linspace (0, l, 6) 
K = 
 0 0.2000 0.4000 0.6000 0.8000 1.0000 
 
gera um vetor linearmente espaçado de 0 a 1, contendo 6 elementos. 
 
» x = linspace (1, 10.5, 5) 
x = 
 1.0000 3.3750 5.7500 8.1250 10.5000 
 
» x=logspace(0, 2, 5) 
x = 
 1.0000 3.1623 10.0000 31.6228 100.00 
 
» x = [8 6 8.10 5-6j] 
x = 
 8.0000 6.0000 8.1000 5.0000 - 6.0000i 
 
Nos exemplos acima os vetores possuem uma linha e várias colunas (vetores 
linha). Da mesma forma podem existir vetores coluna (uma coluna e várias linhas). Para 
se criar um vetor coluna elemento por elemento estes devem estar separados por ( ; ). 
Por exemplo: 
 
» v = [1.5; -3.2; 9] 
v = 
 1.5000 
 -3.2000 
 9.0000 
 
Vetores coluna podem também ser criados a partir dos comandos utilizados 
anteriormente para criar os vetores linha, acompanhados do símbolo ( ' ), que é o 
operador de transposição. Exemplos: 
 
 
31 
 
» y = (1: 0.5 : 3) ' 
y = 
 1.0000 
 1.5000 
 2.0000 
 2.5000 
 3.0000 
 
» z = [0 -2.3 4 sqrt(33)] ' 
z = 
 0 
 -2.3000 
 4.0000 
 5.7446 
 
Endereçamento de Vetores 
 
No MATLAB, cada um dos elementos de um vetor pode ser acessado por meio 
de seu índice que identifica cada uma das colunas. Por exemplo: 
» x = 1 : 10 
x = 
 1 2 3 4 5 6 7 8 9 10 
 
» x(3) % Acessa o terceiro elemento de x 
ans = 
 3 
 
» x(5) % Acessa o quinto elemento de x 
ans = 
 5 
 
Elementos de um vetor também podem ser acessados em blocos. Por exemplo: 
 
 
32 
 
» c=linspace(10, 40, 7) 
c = 
 10 15 20 25 30 35 40 
 
» c(3 : 5) % terceiro a quinto elemento de c 
ans = 
 20 25 30 
 
» (5 : -2 : 1) % quinto, terceiro e primeiro elementos de c 
ans = 
 30 20 10 
 
O endereçamento indireto também é possível, permitindo referenciar os 
elementos em qualquer ordem: 
 
» c([4 1]) % quarto e primeiro elementos 
ans = 
 25 10 
 
Operações entre vetores 
 
As operações básicas entre vetores só são definidas quando estes tiverem o 
mesmo tamanho e orientação (linha ou coluna). Estas operações são mostradas na 
Tabela 14. 
 
Tabela 14: Operações básicas com vetores 
 
33 
 
Funções com matrizes 
 
O MATLAB possui algumas funções que se aplicam a matrizes como, por 
exemplo, as funções size (fornece o número de linhas e colunas de uma matriz) e length 
(fornece o maior valor entre o número de linhas e colunas). O MATLAB tem também 
funções que se aplicam individualmente a cada coluna da matriz produzindo um vetor 
linha com os elementos correspondentes ao resultado de cada coluna. Se a função for 
aplicada à transposta de da matriz, os resultados serão relativos a cada linha da matriz. 
Se o argumento da função for um vetor, o resultado será um escalar. Algumas dessas 
funções são (Tabela 15): 
 
Tabela 15: Funções básicas para matrizes 
 
 
Submatrizes 
 
Sendo B uma matriz 3x3 unitária, podemos defini-la através da seguinte função: 
 
>> B = ones (3) 
 
111
111
111
B
 
 
Sendo C uma matriz de zeros 3x4, podemos defini-la como: 
 
 
 
34 
 
>> C = zeros (3,4) 
 
0000
0000
0000
C
 
 
Para que o MATLAB gere uma matriz de números aleatórios entre 0 e 1, 
utilizamos a função rand (veja também a função randn, utilizando o comando help ). 
Exemplo: 
 
>> D = rand (2,3) 
 
3835.06793.00470.0
9347.06789.02190.0
D
 
 
Uma matriz magic square de ordem n é uma matriz n x n constituída de números 
inteiros de 1 a n
2
. Os elementos aij da matriz estão dispostos de forma tal que o 
somatório de cada linha é igual ao somatório de uma coluna. 
Forma Geral: magic (n) matriz square magic de ordem n. Assim, para saber o 
quadrado mágico de ordem 3 , o prompt do MATLAB deve apresentar: 
 
>> E = magic (3) 
 
294
753
618
E
 
 
 
 
 
 
35 
 
12 – GRÁFICOS NO MATLAB 
 
A construção de gráficos no MATLAB é mais uma das facilidades do sistema. 
Por meio de comandos simples podem-se obter gráficos bidimensionais ou 
tridimensionais com qualquer tipo de escala e coordenadas. 
 
Gráficos Bidimensionais 
 
É muito comum engenheiros e cientistas usarem gráficos x - y. Os dados que nós 
plotamos são usualmente lidos por um arquivo ou calculados em nossos programas. 
Geralmente assumimos que valores de x representam variáveis independentes e 
que valores de y representam variáveis dependentes. Os valores de y podem ser 
calculados usando as funções de x, ou os valores de x e y podem ser retirados de 
experiência. 
Estes são os comandos para plotar gráficos bidimensionais (Tabela 16): 
 
Tabela 16: Alguns comandos para gráficos bidimensionais 
 
 
Observação: É importante lembrar que logaritmo de valores negativos e zero 
não existem, logo se tentarmos plotar um gráfico semilog ou log com valores negativos 
ou zeros, aparecera no MATLAB uma mensagem informando que esses valores serão 
omitidos do gráfico. 
Se Y é um vetor, plot (Y) produz um gráfico linear dos elementos de Y versos o 
índice dos elementos de Y. Por exemplo, para plotar os números [0.0, 0.48, 0.84, 1.0, 
0.91, 0.6, 0,14], entre com o vetor e execute o comando plot: 
 
36 
 
>> Y = [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0,14]; 
 
>> plot (Y) 
 
 
Figura 4: Plotagem de gráfico bidimensional. 
 
Se X e Y são vetores com dimensões iguais, o comando plot(X,Y) produz um 
gráfico bidimensional dos elementos de X versos os elementos de Y, por exemplo 
 
>> t = 0:0.05:4*pi; 
 
>> y = sin(t); 
 
>> plot(t,y) 
 
 
Figura
5: Gráfico de elementos de x versos elementos de y 
37 
 
O MATLAB pode também plotar múltiplas linhas e apenas um gráfico. Existem 
duas maneiras, a primeira é usado apenas dois argumentos, como em plot (X,Y), onde X 
e/ou Y são matrizes. Então: 
 Se Y é uma matriz e X um vetor, plot(X,Y) plota sucessivamente as linhas ou 
colunas de Y versos o vetor X. 
 Se X é uma matriz e Y é um vetor, plot(X,Y) plota sucessivamente as linhas ou 
colunas de X versos o vetor Y. 
 Se X e Y são matrizes com mesma dimensão, plot(X,Y) plota sucessivamente as 
colunas de X versos as colunas de Y. 
 Se Y é uma matriz, plot(Y) plota sucessivamente as colunas de Y versos o índice 
de cada elemento da linha de Y. 
A segunda, e mais fácil, maneira de plotar gráficos com múltiplas linhas é 
usando o comando plot com múltiplos argumentos. Por exemplo: 
 
>> plot(t, sin(t), t, cos(t), t, sin(t + pi), t, cos(t + pi)) 
 
 
Figura 6: Comando plot com múltiplos argumentos 
 
 
 
 
 
38 
 
Estilos de Linha e Símbolo 
 
Os tipos de linhas, símbolos e cores usados para plotar gráficos podem ser 
controlados se os padrões não são satisfatórios. Por exemplo, 
>> X = 0:0.05:1; 
 
>> subplot(l,2,l), plot(X,X.^2,‟k*‟) 
 
>> subplot(l,2,2), plot(X,X.^2,‟k --„) 
 
 
Figura 7: Estilos de linhas e símbolos 
 
O comando plot(x, y) nos mostra uma linha plotada representando os vetores y e 
x, mas podemos selecionar outros tipos de linha. Também podemos plotar pontos ao 
invés de linhas. A Tabela 17 mostra as diferentes opções de linhas e marcações: 
 
Tabela 17: Diferentes opções de linhas e marcações 
Tipo de linha Indicador Tipo de ponto Indicador 
Solid - Point . 
Dashed -- Plus + 
Dotted : Star * 
Dashdot -. circle ° 
 x-mark x 
 
39 
 
Podemos também escolher as cores que serão usadas. Estas propriedades estão 
resumidas na Tabela18: 
 
Tabela 18: Tipos de cores 
Cores 
y Amarelo 
m Lilás 
c Azul claro 
r Vermelho 
g Verde 
b Azul escuro 
w Branco 
k Preto 
 
 
Escala 
 
A escala dos eixos no MATLAB é automática, porém se você quiser rearrumar a 
escala de seus eixos você pode usar o comando axis. Existem várias formas de se usar o 
comando axis: 
axis - Este comando congela a escala de eixos para uma subseqüência de gráficos. A 
Segunda execução do comando retorna o sistema a escala automática. 
axis(v) - v é um vetor de quatro elementos que contém a escala de 
valores,[xmin,xmax,ymin,ymax]. 
Esses comandos tem um uso especial quando se quer comparar curvas de 
diferentes gráficos, pois pode ser difícil a comparação quando as curvas possuem 
diferentes eixos e escalas. 
 
Subplot 
 
O comando subplot é usado quando se quer visualizar dois ou mais gráficos ao 
mesmo tempo. 
 
>> subplot(2,1,1), plot(x,y) 
 
40 
 
>> subplot(2,1,2), plot(y,x) 
 
Esse comando significa que teremos 2 gráficos sendo o primeiro (plot(x,y)) 
colocado no canto superior esquerdo da tela e o segundo colocado no canto superior 
direito da tela. 
 
Controle de tela 
 
gcf __________________ Apresenta uma janela com gráfico; 
clc __________________ Limpa a janela de comando; 
clg __________________ Limpa a janela do gráfico; 
 
Gráficos Tridimensionais e Contornos 
 
A rede de superfície pode ser gerada por um conjunto de valores em uma matriz. 
Cada ponta na matriz representa o valor da superfície que corresponde ao ponto na tela. 
Para gerar um arquivo que representa uma superfície 3D, primeiramente calculamos o 
conjunto dos valores de x e y que representam as variáveis independentes e depois 
calculamos os valores de z que representa os valores da superfície. O comando no 
MATLAB para plotar gráficos 3D é mesh(z). O comando meshgrid tem os argumentos 
do vetor x e y, ou seja transforma o domínio especificado pelos vetores x e y em vetores 
que podem ser usados em cálculos de funções de 2 variáveis e construção de gráfico 3D. 
Exemplo: 
Gerar o gráfico 3D da função -0.5 < x < 0.5 ; -0.5 < y < 0.5 ; 
f(x ,y)= z = 1 - x²- y² 
1 = |x² + y² + z²| 
 
Solução: 
>> [xgrid,ygrid]=meshgrid(-0.5:0.1:0.5,-0.5:0.1:0.5); 
 
>> z=sqrt(abs(1 - xgrid.^2 - ygrid.^2)); 
 
>> mesh(z); 
 
41 
 
 
 
 
Figura 8: Gráfico de superfície 
 
E, o comando contour(z,10) mostra a projeção da superfície acima no plano x y 
com 10 iso-linhas: 
 
 
Figura 9: Gráfico de contorno 
 
42 
 
Estes são alguns comandos para plotar gráficos tridimensionais e contornos 
(Tabela 19). 
 
Tabela 19: Alguns comandos para gráficos tridimensionais e de contorno 
 
 
Anotações no gráfico 
 
O MATLAB possui comandos de fácil utilização para adicionar informações em 
um gráfico (Tabela 20): 
 
Tabela 20: Anotações em gráficos 
 
 
Observação: O MatLab possui uma ferramenta interativa para ampliar seções 
de um gráfico a fim de mostrá-las em mais detalhes, ou para dar um zoom em uma 
região de interesse. O comando zoom on ativa o zoom. Dando um clique com o mouse 
dentro da janela ativa, amplia-se o gráfico por um fator de dois em torno do ponto 
indicado pelo ponteiro do mouse. Pressionando a tecla shift e dando um clique com o 
mouse, o gráfico é reduzido por um fator de dois. Você pode também dar um clique e 
arrastar o mouse para ampliar uma área específica. O comando zoom (n) amplia usando 
um fator igual a n, enquanto zoom out devolve o gráfico a seu estado inicial. O comando 
zoom off desliga o modo de ampliação 
43 
 
13 – CARACTERES E STRINGS 
 
Um caractere no MATLAB é um valor inteiro convertido em um caractere 
equivalente de Unicode® UTF-16. Um string de caractere é um vetor com componentes 
convertidos de códigos numéricos para caracteres. 
 Os elementos de um caractere ou string são uma classe do tipo char. As células 
da classe char podem ter múltiplos strings, com cada string possuindo o mesmo 
comprimento. 
 
Funções de conversão 
 
A Tabela 21 mostra algumas funções de conversão utilizadas no MATLAB. 
 
Tabela 21: Funções de conversão 
Função Descrição 
char 
Converte um inteiro positivo em um caractere equivalente. 
(Trunca qualquer parte fracional). 
int2str 
Converte um inteiro negativo ou positivo em um caractere. 
(Arredonda qualquer parte fracional). 
num2str 
Converte um tipo numérico para um tipo de caractere com uma 
precisão e formato específicos. 
str2num 
Converte um string para um tipo numérico com uma precisão e 
formato específicos. 
double Converte um string para um código numérico 
str2double Converte um string para um valor com precisão dupla. 
uintN (por exemplo uint8) 
Converte um caractere em um código inteiro, o qual representa 
um caractere. 
 
 
 
 
 
 
 
 
 
 
44 
 
 
14 – ARQUIVOS 
 
O MATLAB trabalha com dois tipos diferentes de arquivos: Os arquivos MAT e os 
arquivos ASCII. 
 
Os arquivos MAT 
 
Os arquivos MAT são gerados por um programa MATLAB usando o comando 
save, que contém o nome do arquivo e as matrizes que devem ser armazenadas. A 
extensão .mat é automaticamente adicionada ao nome do arquivo, contudo também é 
possível definir a extensão do arquivo a ser salvo. Assim, para salvar matrizes A, B e C, 
em um arquivo .mat nomeado “teste_1” devemos fazer: 
 
save ([teste_1 „.mat‟], „A‟, „B‟, „C‟); 
 
Para recuperar as matrizes no programa MATLAB, usamos o comando: 
 
load („teste_1.mat‟); 
 
Arquivos ASCII 
 
Um arquivo ASCII que será usado juntamente com um programa MATLAB 
deve conter informação exclusivamente numérica, e cada linha do arquivo deve conter o 
mesmo número de dados. O arquivo pode ser gerado utilizando um processador de texto 
ou, por exemplo, utilizando programas como o Fortran ou ainda, por um programa 
MATLAB usando a seguinte forma do comando save: 
 
save teste_1.dat R /ascii 
 
Cada linha da matriz R será escrita para linhas distintas no arquivos de dados. 
Recomenda-se utilizar a extensão .dat para ser mais fácil distingui-los dos arquivos 
MAT e dos arquivos M. 
45 
 
O comando
load seguido do nome do arquivo irá recuperar a informação da 
matriz R. 
 
load teste_1.dat; 
 
Formatos de arquivos suportados para importar e exportar 
 
A Tabela 22 mostra os formatos de arquivos que se pode importar e exportar 
para a aplicação do MATLAB. 
 
Tabela 22: Formatos de arquivos suportados. 
Conteúdo do arquivo Extensão Função para importar Função para exportar 
Dados em formato MATLAB MAT load save 
Texto Quaisquer 
load save -ascii 
dlmread dlmwrite 
textscan 
Planilha 
XLS 
xlsread xlswrite 
XLSX 
XLSB 
XLSM 
Dados científicos 
CDF cdfread, ou veja cdflib cdfwrite, ou veja cdflib 
FITS fitsread 
Não há 
HDF hdfread 
H5 hdf5read hdf5write 
NC Ver netcdf Ver netcdf 
Imagem 
BMP 
imread imwrite 
GIF 
HDF 
JPEG 
JPG 
JP2 
JPF 
JPX 
46 
 
J2C 
J2K 
PBM 
PCX 
PGM 
PNG 
PNM 
PPM 
RAS 
TIFF 
TIF 
XWD 
CUR 
imread Não há 
FITS 
FTS 
ICO 
Arquivo de áudio 
AU 
SND 
auread auwrite 
WAV wavread wavwrite 
Arquivo de vídeo (todas as 
plataformas) 
AVI mmreader avifile 
MJ2 mmreader Não há 
Arquivo de vídeo (Windows) 
MPG 
mmreader Não há 
ASF 
ASX 
WMV 
Quaisquer 
Arquivo de vídeo (Mac) 
MPG 
MP4 
M4V mmreader Não há 
Quaisquer 
Arquivo de vídeo (Linux) Quaisquer mmreader Não há 
Imagem 
imread imwrite 
47 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
_________________________ 
II CRIAÇÃO DE INTERFACES 
GRÁFICAS 
____________________________ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48 
 
15 – O QUE É UMA GUI? 
 
Uma interface gráfica com o usuário (graphical user interface, a famosa GUI) é 
uma interface “pictórica” para um programa. Uma GUI provê um ambiente familiar 
para o trabalho do usuário, fornecendo recursos como janelas, botões, menus, entre 
outros. 
Pode-se criar uma interface gráfica se o aplicativo que você está desenvolvendo 
vai ser utilizado por outras pessoas, ou se a função que você está escrevendo vai ser 
usada várias vezes. Nesses casos, menus, botões e caixas de texto podem ser usados 
como métodos de inserção de dados. 
Tenha em mente que a GUI deve se comportar de maneira inteligível, de forma 
que o usuário presuma qual a ação que o programa tomará quando este interagir com 
um objeto pertencente à interface. Por exemplo, quando um botão for clicado, é natural 
que a ação adotada pelo programa seja descrita pelo nome etiquetado no botão. O 
MATLAB contém exemplos interessantes de suas habilidades com as GUIs. Utilize, na 
janela de comandos (command window), o comando >> demo e veja o vídeo associado, 
ou consulte a ajuda do programa. 
Para iniciar o Guide, digitamos na janela de comandos do MATLAB: 
 
>> guide 
 
Quando uma GUI é criada no Guide, ele se encarrega de criar dois arquivos: o 
arquivo do corpo da interface gráfica (que é salvo como uma figura de extensão .fig, do 
MATLAB) e outro arquivo contendo funções que controlam como a GUI trabalha 
(salvo como um arquivo de função .m, do MATLAB). Este arquivo fornece códigos 
para iniciar a GUI e contém a estrutura para os callbacks da interface (as rotinas que são 
executadas quando o usuário interage com um componente da GUI). 
Na Figura 10, temos o Guide com uma GUI em branco. 
49 
 
 
Figura 10: A tela inicial do Guide, exibindo uma GUI em branco. 
 
Os modos de criação 
 
Basicamente, há dois meios de se criar uma GUI: 
 Criando funções diretamente na linha de comando (o que pode ser dolorido, 
assombroso e desumano); 
 Simplificando drasticamente a tarefa, com o uso da função Guide, existente no 
Matlab. 
Neste curso as GUIs serão criadas com o auxílio do Guide, e depois programadas de 
acordo com a necessidade do usuário. 
 
 
 
 
 
 
50 
 
16 – OS COMPONENTES BÁSICOS DE UMA GUI 
 
A Tabela 23 mostra os componentes mais usados no GUI. 
 
Tabela 23: Descrição dos componentes mais usados na criação de uma GUI. 
 
 
51 
 
 
 
 
52 
 
 
 
Conhecendo estes componentes e utilizando-os convenientemente, estaremos a 
um passo da criação de GUIs úteis e funcionais. Depois de projetar a GUI, basta 
programar as ações de cada componente. 
Entretanto, algumas vezes é interessante mudar a cor de fundo da janela, ou o 
tipo de fonte de um rótulo de texto, entre outros aspectos da interface. Podemos fazer 
isso no Guide utilizando o inspetor de propriedades dos componentes. 
 
O inspetor de propriedades 
 
Se executarmos um clique duplo em qualquer um dos componentes no momento 
de criação da sua interface gráfica no Guide, o inspetor de propriedades (Inspector; 
Property Inspector nas primeiras versões) é acionado. Pode-se também clicar no 
componente em questão com o botão direito do mouse, e selecionar a opção Property 
Inspector, ou escolher View → Property Inspector no menu do Guide. Na Figura 11, 
temos o inspetor de propriedades da interface gráfica de um botão texto. As 
propriedades apresentadas são referentes ao pushbutton da GUI. 
O inspetor de propriedades exibe as propriedades do objeto, e se alterará 
conforme outros objetos são clicados. Podemos alterar os valores das propriedades 
como necessário. 
 
 
 
53 
 
 
Figura 11: O inspetor de propriedades do Guide. As propriedades exibidas referem-se a um pushbutton. 
 
Na Tabela 24, dada abaixo, temos algumas propriedades compartilhadas pela 
maioria dos componentes descritos na Tabela 23. 
 
Tabela 24: Propriedades comuns à maioria dos componentes dados pelo Guide. 
 
 
54 
 
 
 
 
55 
 
 
 
Conhecendo estas propriedades, podemos começar a customizar a aparência da 
interface gráfica. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56 
 
17 – ROTEIRO PARA A CONSTRUÇÃO DE UMA GUI 
 
Antes de por a “mão na massa”, é interessante que haja um projeto das GUIs que 
você deseja construir. Obviamente, este projeto é feito depois das outras funções da 
interface terem sido planejadas. Um projeto de GUI pode ser feito com papel e caneta, 
como um rascunho da interface que você deseja que o programa tenha. A ideia de um 
esboço é exemplificada na Figura 12. 
 
 
Figura 12: Um esboço de interface gráfica com o usuário. 
 
O rascunho em um papel é simples, mas independente da complexidade da GUI, 
é sempre um bom meio de começar. Depois de projetada, é hora de estruturar sua GUI 
no Guide. 
 
Criando uma GUI 
 
Neste primeiro momento, cabe apresentar o espaço do MATLAB destinado à 
construção de uma interface gráfica, ou seja, uma GUI. É acessado do menu new gui. 
57 
 
 
Figura 13: Acesso ao menu do GUI. 
 
Dê um clic em OK para abrir um utilizador em branco para a criação da GUI, ou 
digite “guide” na janela de comando do MATLAB (Figura 14). 
 
Figura 14: Janela para a criação da GUI 
58 
 
Com o utilizador você poderá fazer um desenho de seu programa utilizando as 
ferramentas à direita da janela do utilizador (Figura 15). A barra para construção dá ao 
usuário o material necessário para construir a cara da interface gráfica. 
 
 
 
 
 
 
 
 
 
 
Figura 15: Barra de ferramentas da GUI 
 
Na Figura 16, como exemplo, temos uma GUI com todos esses componentes. 
 
 
Figura 16: Exemplo de uma GUI com todos os seus componentes 
 
 
 
59 
 
Programando a GUI 
 
O Guide é um programa simples de ser utilizado. Podemos trabalhar facilmente 
editando a GUI, colocando objetos como botões e caixas de texto diretamente na área de 
layout. Porém, para que a GUI interaja com o usuário de maneira satisfatória, é preciso 
programar as ações de seus objetos. Fazemos isso alterando a função .m da interface 
gráfica que foi criada. Como exemplo, na Figura 17, temos a GUI botaotexto.fig, e o 
arquivo botaotexto.m no editor do Matlab. 
 
 
Figura 17: A GUI botaotexto.fig, e seu respectivo arquivo .m no MATLAB Editor. 
 
Esta interface gráfica exibe um botão, uma caixa de edição e um rótulo de texto. 
O MATLAB chama esses objetos de pushbutton,
edit text e static text, respectivamente. 
Observe, no arquivo botaotexto.m, os callbacks já citados anteriormente. Quando 
clicarmos o pushbutton, ativaremos seu callback, que determinará a ação do botão. Da 
mesma forma, quando digitarmos alguns caracteres na edit text e pressionarmos 
“Enter”, ativaremos seu callback. Note que static text não tem sua função callback. 
Tenha em mente que nem sempre todos os callbacks são utilizados 
 
 
60 
 
18 – CRIANDO E MODIFICANDO MENUS 
 
A criação de menus e submenus no Guide 
 
Menus podem também ser adicionados às interfaces gráficas criadas no Guide. 
Eles são úteis quando queremos disponibilizar opções que não são necessárias em todo 
o momento de execução, ou adicionar funções que são utilizadas com pouca frequência. 
Há dois tipos de menus disponíveis no Guide: os menus padrão (standard), que se 
situam na barra de menus, no topo de uma janela, e os menus de contexto, que aparecem 
quando o usuário clica com o botão direito sobre um determinado objeto. 
O Guide possui uma ferramenta para edição de menus, o Menu Editor. Para 
acioná-lo, podemos ir para Tools → Menu Editor, ou simplesmente clicar no ícone que 
exibe um menu. Este ícone é mostrado na Figura 18, juntamente com o Menu Editor. 
 
 
Figura 18: O manipulador de menus do Guide, Menu Editor. 
 
A Figura 19 mostra exemplos de menus padrão no Menu Editor, e a interface 
gráfica com um menu de contexto ativado. É importante saber que, para os menus de 
61 
 
contexto trabalharem da maneira esperada, devemos alterar a propriedade 
UIContextMenu do componente ao qual queremos associar tal menu. 
 
 
Figura 19: Menus padrão e de contexto criados no Menu Editor. 
 
Depois de construídos, podemos trabalhar com algumas propriedades dos 
menus, a fim de deixar a interface ainda mais intuitiva. 
 
Propriedades dos menus 
 
Alguns recursos de interesse na personalização de menus são as caixas 
“separator above this item”, que quando selecionada mostra uma barra que separa os 
subitens do menu acima do submenu relacionado, e “check mark this item ”, que quando 
marcada mostra o subitem correspondente selecionado com uma marcação. A Figura 
20, mostra exemplos das duas opções na GUI botaotexto e onde encontrá-las no Menu 
Editor. 
 
 
 
 
62 
 
 
Figura 20: As opções “separator above this item” e “check mark this item” selecionadas para o subitem 
2, e a interface gráfica resultante. 
 
Quando lidamos com menus, é comum observarmos a presença de atalhos que 
aparecem na forma de letras sublinhadas. As “letras mnemônicas”, como são chamadas, 
servem para agilizar o acesso ao menu. Para utilizá-las, pressionamos ALT e a letra 
correspondente ao item de menu que desejamos acionar. 
Para implementar a funcionalidade das letras mnemônicas no Menu Editor do 
Guide, simplesmente colocamos o caractere “&” imediatamente antes da letra desejada. 
Por exemplo, na interface exibida na Figura 20, se quisermos que o menu “Item 2” 
tenha como atalho a combinação ALT + T, escrevemos “I&tem 2” na propriedade 
“Label” do Menu Editor. Note que, em tempo de execução, o atalho apenas aparecerá 
quando pressionarmos ALT. Na Figura 21, temos o exemplo descrito acima na GUI 
botaotexto. 
 
63 
 
 
Figura 21: Exemplo de interface gráfica com uma letra mnemônica e a correspondente entrada no Menu 
Editor. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64 
 
19 – CONFIGURANDO E EXPLORANDO OS EVENTOS E AS 
CHAMADAS DE RETORNO DA GUI 
 
Após montar o programa utilizando os recursos computacionais citados acima, 
podemos ativar a interface, basta apertar Ctrl+T, ou aperte um botão verde em formato 
de play na parte superior da janela. Quando a janela de uma interface gráfica é ativada, 
o MATLAB cria automaticamente uma função (M-file) com o código necessário para 
gerar a Estrutura de dados de todos os componentes e propriedades respectivas, as quais 
constituem a interface por meio de uma sequência de instruções que aparecem no início 
da função que não devem ser alteradas. 
O arquivo .m gerado pelo MATLAB, geralmente, contém: 1) A função principal 
que leva o nome da GUI projetada; 2) Subfunções padrões que implementam as 
chamadas de retorno para cada componente ativo da GUI. Cada função de chamada de 
retorno cuida somente de um ÚNICO COMPONENTE DA GUI. 
Nome da chamada de retorno: “TAG” + “_CALLBACK”. 
O Tag do M-file deve ser correspondente a ferramenta usada na interface. Os 
comandos devem ser digitados no M-file da interface abaixo da parte correspondente ao 
callback do botão. 
Outras estruturas de dados dos argumentos: 
 Object Handle (hObject): estrutura com atributos e propriedades (os mesmos 
visualizáveis no Property Inspector) da componente que disparou a callback. 
 Event Data (eventdata): estrutura com o histórico da sequência de evento até ao 
disparo da callback (não é utilizado por todas as componentes). 
 Handles Structure (handles): apontador para uma estrutura com atributos e 
propriedades (os mesmos visualizáveis no Property Inspector) de todas as 
componentes existentes na GUI, bem como dados específicos da aplicação. 
 
Comando get e set 
 
O comando “get” serve para a entrada de dados, seja ele um número ou um nome. Já o 
comando “set” tem a finalidade de apenas exibir dados obtidos ou gerados no programa 
em qualquer elemento GUI programado. Por exemplo: 
 
Variável = get(handles.edit1,'string'); 
set (handles.text1,'string',Variavel); 
65 
 
Edit Text 
 
O edit text mostra o valor corrente de um slider. O usuário pode entrar com o 
valor dentro da caixa de texto e atualizar o valor ou outra informação. 
 
texto = get(handles.edit1,'String'); % mostra um caractere 
k=str2double(get(handles.edit1, 'string')); %intervalo de amostragem 
 
 
Radiobutton 
 
Os botões de rádio geralmente são exclusivos; ou seja, quando um é clicado, os 
outros relacionados àquele são desativados. Isso não é implementado automaticamente, 
o que requer esforço extra de nossa parte. Para isso, é necessário alterar o valor “value” 
referente ao radiobutton: 
 
set(handles.radiobutton1,'Value',1); % Selecionado 
set(handles.radiobutton2,'Value',0); % Não selecionado 
set(handles.radiobutton3,'Value',0); % Não selecionado 
 
Pop-up menu 
 
Quando o Callback do pop-up menu é selecionado, o valor do menu de 
propriedades do pop-up menu que contém o índice correspondente é escolhido. Por 
exemplo, em um pop-up menu com quatro índices contendo valores distintos (1 a 4), 
quando selecionado o segundo item, que corresponde ao valor 2, este é armazenado na 
variável. 
 
popup_sel_index = get(handles.popupmenu1, 'Value'); 
 
 switch popup_sel_index 
 case 1 
 cp2=1; 
 case 2 
 cp2=2; 
 case 3 
 cp2=3; 
 case 4 
 cp2=4; 
 end 
 
66 
 
20 – ANOTAÇÕES

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando