Buscar

APOSTILA_MATLAB

Prévia do material em texto

CCUURRSSOO IINNTTRROODDUUTTÓÓRRIIOO 
 
DDEE 
 
MMAATTLLAABB 66..55 
 
 
 
 
 
 
 
Prof. Silmara Alexandra da Silva Vicente 
silmara@mackenzie.com.br 
 
Janeiro/2003 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 2 
Sumário 
 
1. Introdução 
1.1 História do MATLAB 
1.2 Toolboxes 
1.3 Aprendendo a Utilizar o MATLAB 
1.4 MATLAB no Ambiente Windows 
1.5 Comandos Básicos e Declarações de Variáveis 
1.6 Números e Expressões Aritméticas 
1.7 Formato de Saída 
1.8 Matrizes Simples 
1.9 Elementos das Matrizes 
1.10 Indexação de Elementos de Matrizes 
1.11 Dimensão de Vetores e Matrizes 
1.12 Matrizes Especiais 
1.13 Números e Matrizes Complexas 
1.14 Funções Matemáticas Elementares 
1.15 Facilidades do Help 
 
2. Operações com Matrizes 
2.1 Transposta 
2.2 Adição e Subtração 
2.3 Multiplicação 
2.4 Divisão 
2.5 Potenciação 
 
3. Operações Relacionais e Lógicas 
3.1 Operadores Relacionais 
3.2 Operadores Lógicos 
3.3 Arquivos M de Comandos 
 
4. Controle de Fluxo 
4.1 Laço For 
4.2 Laço While 
4.3 Estrutura If-Else-End 
4.4 Estrutura Switch-Case 
 
5. Arquivos M de Funções 
5.1 Porque usar funções? 
5.2 Diferença entre Arquivo M de Funções e Arquivo M de Comandos 
5.3 Como escrever uma Função 
5.4 Regras e Propriedades 
 
 
6. Análise Numérica 
6.1 Otimização 
6.2 Integração Numérica 
6.3 Solução de Equações Diferenciais 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 3 
 
7. Polinômios 
7.1 Raízes 
7.2 Multiplicação 
7.3 Adição 
7.4 Divisão 
7.5 Cálculo de Polinômios 
7.6 Derivada de Polinômios 
 
8. Gráficos 
8.1 Gráficos Bidimensionais 
8.2 Estilos de Linhas e Símbolos 
8.3 Números Complexos 
8.4 Escala Logarítmica, Coordenada Polar e Gráfico de Barras 
8.5 Gráficos Tridimensionais 
8.6 Anotações no Gráfico 
 
9. Simulink 
9.1 Introdução ao Simulink 
9.2 Exemplos 
 
10. Referências Bibliográficas 
 
11. Anexos 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 4 
1 INTRODUÇÃO 
1.1. HISTÓRIA DO MATLAB 
 
- Desenvolvido no final da década de 70 na Universidade do Novo México e na Universidade de 
Stanford, onde a primeira versão foi lançada em 1984; 
 
- É destinado aos cursos de teoria matricial, álgebra linear e análise numérica; 
 
- Atualmente esse software está tão desenvolvido que sua capacidade se estende muito além do 
"Laboratório de Matrizes" – tradução para a palavra MATLAB; 
 
- MATLAB é um software interativo e uma linguagem de programação aplicada tanto para 
computação técnica como científica em geral; 
 
- Ele integra a capacidade de fazer cálculos, visualização gráfica e programação em um ambiente 
fácil de usar. O elemento básico é uma matriz e não requer dimensionamento à priori. Isso 
permite solucionar muitos problemas numéricos em uma fração de tempo menor do que seria 
necessário para escrever um programa em uma linguagem como FORTRAN, Basic ou C; 
 
- A forma de expressar a solução de problemas no MATLAB é quase a mesma na qual eles são 
escritos matematicamente; 
 
- A matemática é a linguagem comum de grande parte das ciências e da engenharia. As matrizes, 
equações diferenciais, conjuntos de dados, gráficos e diagramas são os blocos básicos tanto da 
matemática aplicada quanto do MATLAB. Sendo essa base matemática que torna o MATLAB 
acessível e poderoso; 
 
Alguns exemplos das muitas áreas onde o MATLAB tem sido utilizado: 
 
· Um estudante de pós-graduação em Física analisando e visualizando dados de seus 
experimentos com campos magnéticos de super condutores; 
· Um parque de diversões modelando os sistemas de controle para seus brinquedos; 
· Um estudante de primeiro grau aprendendo multiplicação; 
 
- Já existem mais de 500.000 usuários ao redor do mundo, no Brasil o MATLAB tem estado 
presente nas Universidades e Faculdades de primeira linha bem como nos departamentos de 
engenharia e desenvolvimento das principais empresas e instituições do país: Companhia Vale do 
Rio Doce, Embraer, Renault do Brasil, Motorola do Brasil, Petrobrás, BankBoston, Banco do 
Brasil, Banco Central do Brasil e outros. 
 
- Em todos esses casos e em milhares de outros, o fundamento matemático do MATLAB torna-o 
útil em locais e aplicações muito além do que se pode imaginar. 
 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 5 
1.2. TOOLBOXES 
 
O MATLAB é tanto um ambiente quanto uma linguagem de programação e um de seus aspectos 
mais poderosos é o fato de que a linguagem MATLAB permite-lhe construir suas próprias 
ferramentas reutilizáveis. Pode-se facilmente criar suas próprias funções e programas especiais 
(conhecidos como arquivos M) em linguagem MATLAB. 
· TOOLBOX: uma coleção especializada de arquivos M para trabalhar em classes 
particulares de problemas, traduzindo, são bibliotecas de rotinas MATLAB (m-files), aplicadas a 
áreas específicas tais como: controle, estatística, álgebra, lógica nebulosa (lógica fuzzy). Essas 
bibliotecas são construídas usando a linguagem do MATLAB e isso tem algumas implicações: 
 
· É possível uma integração direta e perfeita com o Simulink e quaisquer outras toolboxes 
que se tenha disponível; 
 
· Como todas as toolboxes estão escritas em linguagem MATLAB, pode-se tirar proveito 
da característica de sistema aberto do MATLAB e também examinar os arquivos M, editá-los ou 
utilizá-los como modelos de referência quando estiver criando suas próprias funções; 
 
· Toda toolbox é disponível para qualquer tipo de sistema que execute o MATLAB; 
 
Alguns exemplos de toolboxes: 
 
- Toolbox de Processamento de Sinais 
 
- Toolbox de Identificação de Sistemas 
 
- Toolbox de Otimização 
 
- Toolbox de Sistemas de Controle 
 
- Toolbox de Estatística 
 
Existem ainda muitas outras toolboxes tais como: 
 
· Lógica Fuzzy – Fuzzy Logic 
· Redes Neurais – Neural Network 
· Matemática Simbólica e Algébrica – Simbolic Math Toolbox 
 
1.3. APRENDENDO A UTILIZAR O MATLAB 
 
Uma maneira fácil de visualizar o MATLAB é pensar (imaginar) que se está trabalhando com 
uma calculadora científica. Lembrando que nessa calculadora além das operações elementares 
como: adição, subtração, multiplicação e divisão ela também opera com números complexos, 
raízes quadradas, potenciações, logaritmos e simulações complexas de sistemas lineares e não 
lineares entre outras aplicações. Uma grande vantagem do MATLAB é a facilidade em 
programar na sua própria linguagem e com isso armazenar e recuperar dados, criar, executar e 
armazenar seqüências de comandos para automatizar os cálculos. Também é possível plotar 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 6 
dados de diversas maneiras, manipular polinômios, integrar funções, manipular equações 
simbolicamente e ainda programar suas próprias funções de acordo com a necessidade. 
 
Na realidade, o MATLAB oferece muitas outras características e é muito mais versátil do que 
qualquer calculadora: 
· É uma ferramenta para fazer cálculos matemáticos; 
· É uma linguagem de programação com características mais avançadas; 
· Fácil de aplicar quando comparado às linguagens de programação como: BASIC, Pascal 
ou C/C++. 
Esse software apresenta um ambiente rico para a visualização de dados graças à sua poderosa 
capacidade gráfica. É uma plataforma de desenvolvimento de aplicações, na qual conjuntos de 
ferramentas inteligentes para solução de problemas em aplicações específicas, podem serdesenvolvidos de forma relativamente fácil. 
1.4. MATLAB NO AMBIENTE WINDOWS 
Para iniciar o MATLAB é muito simples; basta clicar no ícone: 
 
Ou menu: iniciar/programas/Matlab6.5/Matlab6.5 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 7 
A Janela inicial do MATLAB é a seguinte: 
 
1. Comand Window: 
· É a área de trabalho onde os comandos (as instruções) são digitados; as operações 
podem ser realizadas e seus resultados são mostrados; 
· Também é nessa janela que se pode executar um arquivo m-file; 
· O prompt “>>” indica que o programa está pronto aguardando uma instrução; 
· Com as teclas “­” (seta para cima) e “¯” (seta para baixo) é possível recuperar 
todos os comandos já digitados. 
2. Workspace: 
· É a área na qual são exibidas todas as variáveis definidas na área de trabalho; 
· Essa janela possui quatro colunas indicando o nome, dimensão, número de bytes e 
a classe de cada variável; 
· As variáveis podem ser editadas e visualizadas nessa própria janela, basta dar um 
click-duplo para editá-las; 
· Há um menu flutuante que é possível: 
1. Open - abrir a janela 
2. Graph – criar gráficos a partir dos dados contidos na variável 
3. Select All – selecionar todas as variáveis 
4. Import Data – importar variáveis de um arquivo para o workspace 
5. Save Selection As – salvar as variáveis selecionadas em um arquivo 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 8 
6. Save Workspace As – salvar todas as variáveis do workspace em um 
arquivo 
7. Copy – copiar a variável para a área de transferência de dados do 
Windows 
8. Delete – apagar a variável do workspace 
9. Clear Workspace – apagar todas as variáveis do workspace 
10. Rename – renomear a variável. 
3. Current Directory 
Área onde é exibida uma lista dos arquivos contidos no diretório corrente; 
 
4. Command History 
Área onde ficam armazenadas todas as instruções executadas no MATLAB; 
 
 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 9 
5. Menus pop-up 
São os comandos de configuração do ambiente MATLAB; 
 
1.5. COMANDOS BÁSICOS NO COMMAND WINDOW E DECLARAÇÕES DE VARIÁVEIS 
Para iniciar o nosso trabalho no MATLAB é necessário aprender alguns comandos essenciais da 
janela de trabalho (command window) e na seqüência vamos aplicá-los. 
who Mostra as variáveis do espaço de trabalho. 
whos Mostra as variáveis do espaço de trabalho com detalhes. 
clear Limpa a memória do espaço de trabalho. 
clc Limpa a tela. 
dir ou 
ls 
Mostra o conteúdo do diretório que se encontra. 
cd ou 
pwd 
Informa ou altera diretório corrente. 
what Exibe os arquivos MATLAB contidos no diretório. 
which Identifica e localiza arquivo 
Assim como qualquer outra linguagem de programação, o MATLAB tem regras a respeito do 
nome de variáveis. Os nomes devem ser palavras únicas, sem inclusão de espaços e não devem 
conter caracteres acentuados. 
Mais especificamente, as regras para variáveis são: 
Regras para Nomes de Variáveis Comentários e Exemplos 
As variáveis são sensíveis a maiúsculas e 
minúsculas; 
Itens, itens, itEns e ITEns. São todas variáveis 
diferentes. 
As variáveis podem conter no máximo 31 
caracteres; o que ultrapassar esse número é 
ignorado. 
oquevoceachadessenomedevariavel 
Os nomes das variáveis devem começar com 
uma letra, podem ser seguidos de um número, 
letras ou sublinhados. 
O_que_você_acha_deste_nome 
X51483 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 10 
Além dessas regras de nomes de variáveis, o MATLAB possui algumas variáveis especiais: 
Variável Valor 
ans Variável-padrão usada para resultados 
pi 3.14159265358979... 
inf Infinito ex:1/0 
NaN (ou) nan Não Numérico ex: 0/0 
i (e) j i=j=sqrt(-1) raiz imaginária 
realmin Menor número real utilizável (2.2251e-308) 
realmax Maior número real utilizável (1.7977e+308) 
 
Exemplos de declarações de variáveis: 
 
>>A=5 
>>borrachas=7 
>>blocos=6; 
 
Há uma diferença na execução dessas três variáveis, está relacionada com o ponto e vírgula “;” 
no final da atribuição. Se o último caractere da declaração é um ponto e vírgula ";" a impressão 
na tela é suprimida, mas a tarefa é realizada. Esse procedimento é usado em arquivos com 
extensão ".m" e em situações onde o resultado é uma matriz de grandes dimensões e há interesse 
em apenas alguns dos seus elementos. 
 
Se acaso não for declarado o nome de uma variável o MATLAB tem como padrão uma variável 
chamada ans (answer). Exemplo: 
 
>>borrachas+blocos 
 
ans= 
 13 
 
Isso só ocorre porque não foi atribuído o resultado da soma a uma variável específica. 
 
>>s=borrachas+2*blocos 
s= 
 19 
Todas as funções devem ser escritas em letras minúsculas: 
>> who 
Your variables are: 
 
A blocos borrachas s 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 11 
e não WHO em letra maiúscula. 
Para saber os detalhes dessas variáveis, é só digitar: 
 
» whos 
 Name Size Bytes Class 
 
 A 1x1 8 double array 
 blocos 1x1 8 double array 
 borrachas 1x1 8 double array 
 s 1x1 8 double array 
 
Grand total is 4 elements using 32 bytes 
 
As variáveis do espaço de trabalho podem ser excluídas incondicionalmente usando-se o 
comando clear: 
 
>> clear A % exclui somente a variável A. 
>> clear blocos s % exclui as variáveis blocos e s. 
>> clear b* % exclui as variáveis que iniciam com a letra b. 
 
Obs.: Não há solicitação de confirmação, todas as variáveis serão apagadas e não poderão ser 
recuperadas. 
>>borrachas=5; 
>>canetas=8; 
>>lapiseiras=3; 
>>r=borrachas+canetas+lapiseiras 
 
Para salvar os dados do Command Window: 
Uma das alternativas é ir até o menu: File/ Save Workspace As / digitar o nome do arquivo: 
Por exemplo: exe1.mat 
Para recuperar os dados é só ir no menu: File / Open e abrir o arquivo desejado: 
 
>>clear 
 
Em seguida abrir o arquivo exe1.mat. 
 
Se desejar salvar algumas variáveis em específico também é possível a partir da Janela de 
Comandos: 
 
>> save nome do arquivo variáveis desejadas 
 
>>save exe2 borrachas lapiseiras 
>>clear 
 
Para carregar essas variáveis da Janela de Comandos é só digitar: 
>> load exe2.mat 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 12 
1.6. NÚMEROS E EXPRESSÕES ARITMÉTICAS 
A seguir são mostrados alguns exemplos de números aceitos no MATLAB: 
3 -99 0.00001 
9.637458638 1.602E-20 6.06375e23 
As expressões podem ser construídas usando os operadores aritméticos usuais e as regras de 
precedência: 
1 + Adição 
2 - Subtração 
3 * Multiplicação 
4 / Divisão 
5 ^ Potenciação 
Exemplos: 
>> a=6; 
>>b=8; 
>>c=a-b 
-2 
>>d=a-2*b 
-10 
>>e=2*a-2^b 
-244 
Para expressões utilizar sempre os parênteses: 
>>resp=2*(a-3*b)^1/2-5*(2*a-sqrt(b)) 
-63.858 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 13 
1.7. FORMATO DE SAÍDA 
O formato numérico exibido na tela pode ser modificado utilizando-se o comando format, que 
afeta somente o modo como as matrizes são mostradas, e não como elas são computadas ou 
salvas. 
Se todos os elementos das matrizes são inteiros exatos, a matriz é mostrada em um formato sem 
qualquer ponto decimal. Por exemplo, 
>> x = [-1 0 1] 
resulta em: 
x = 
 -10 1 
Se pelo menos um dos elementos da matriz não é inteiro exato, existem várias possibilidades de 
formatar a saída. O formato "default", chamado de formato short, mostra aproximadamente 4 
dígitos decimais ou usam notação científica. Por exemplo, a matriz: 
>> x = [4/3 1.2345e-6] 
é mostrada , para cada formato usado, da seguinte maneira: 
format short 1.3333 0.0000 4 dígitos decimais 
format short e 1.3333e+000 1.2345e-006 4 dígitos em notação científica 
format long 1.33333333333333 0.000000123450000 15 dígitos decimais 
format long e 1.333333333333333e+000 1.234500000000000e-006 15 dígitos em notação científica 
format hex 3ff5555555555555 3eb4b6231abfd271 Hexadecimal 
format rat 4/3 1/810045 Fração 
format bank 1.33 0.00 2 dígitos decimais 
format + ++ Positivos + e negativos - 
O formato + é uma maneira compacta de mostrar matrizes de grandes dimensões. Os símbolos 
"+", "-", e "espaço em branco" são mostrados, respectivamente para elementos positivos, 
elementos negativos e zeros. 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 14 
Exemplo: 
» a=[1.23 125.365 -115845 
125.025 0 -22114.025 
154.024 0.2025 0 
01.0114 -1.0025 -1121] 
 
a = 
 
++- 
+ - 
++ 
+-- 
 
Exercícios Numéricos: 
 
1) Considere o problema de estimar a altura de um edifício como ilustrado na figura. Estando o 
observador está a uma distância D do edifício, com um ângulo q e sendo a altura do observador h 
deseja-se saber a altura do edifício. 
Dados: h=1.83m 
 q=60° 
 D=46m 
 
 
 
 
2) Vc decidiu comprar um carro novo por R$18500.00. O vendedor está oferecendo duas opções 
de financiamento: 
a) Uma taxa mensal de juros de 0.99% paga durante 4 anos; 
 
b) Uma taxa mensal de juros de 1.30% paga durante 4 anos e um desconto de fábrica de 
R$1800.00. 
Pergunta-se: Qual das duas opções é o melhor negócio? E qual é a economia? 
 
ú
û
ù
ê
ë
é
-+
+
=
1)R1(
)R1(R
AP
M
M
 
 
T=P.M 
 
P=pagamento mensal 
R=taxa de juros 
M=número de meses 
T=total a ser pago 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 15 
1.8. MATRIZES SIMPLES 
As matrizes podem ser introduzidas no MATLAB por diferentes caminhos: 
- digitadas na Janela de Comando (lista explícita de elementos), 
- geradas por comandos e funções, 
- criadas em arquivos ".m", 
- carregadas a partir de um arquivo de dados externo. 
O método mais fácil de entrar com pequenas matrizes no MATLAB é usando uma lista explícita. 
Os elementos de cada linha da matriz são separados por espaços em branco ou vírgulas e as 
colunas separadas por ponto e vírgula, colocando-se colchetes em volta do grupo de elementos 
que formam a matriz. Por exemplo, entre com a expressão: 
>> A=[ 1 2 3;4 5 6;7 8 9 ] 
Pressionando <enter> o MATLAB mostra o resultado 
A = 
 1 2 3 
 4 5 6 
 7 8 9 
As matrizes podem, também, ser introduzidas linha a linha, o que é indicado para matrizes de 
grande dimensão. Por exemplo: 
>>A = [1 2 3 
 4 5 6 
 7 8 9] 
Com o comando load pode-se ler matrizes geradas pelo MATLAB, armazenadas em arquivos 
binários ou matrizes geradas por outros programas armazenadas em arquivos ASCII. 
Nos exemplos anteriores, os valores dos elementos de um vetor são digitados um a um, isto só é 
fácil quando se têm poucos elementos, e o que se faz para inúmeros elementos? 
>> x=[0:0.1:1]*pi 
x = 
 
 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416 
 
>> x=linspace(0,pi,11) 
x = 
 
 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 16 
No primeiro exemplo de x, é utilizada a forma do valor inicial do vetor, o passo, ou seja, o 
incremento desse vetor e o último valor. 
x=[valor inicial : incremento : valor final] 
No segundo exemplo é utilizada a função linspace, primeiramente o valor inicial, depois o valor 
final e por último o número de pontos que se deseja desse vetor. 
linspace(valor inicial, valor final, número de pontos) 
1.9. ELEMENTOS DAS MATRIZES 
Os elementos das matrizes podem ser qualquer expressão do MATLAB, por exemplo: 
>> x = [-1.3 sqrt(2) ((1+2+3)*4/5)^2] 
resultando em : 
x = 
-l.3000 1.4142 23.0400 
Um elemento individual da matriz pode ser reverenciado com índice entre parênteses. 
Continuando o exemplo, 
>> x(6) = abs(x(1)) 
o que produz: 
x = 
-1.3000 1.4142 23.0400 0 0 1.3000 
Note que a dimensão do vetor x é aumentada automaticamente para acomodar o novo elemento e 
que os elementos do intervalo indefinido são estabelecidos como zero. 
Grandes matrizes podem ser construídas a partir de pequenas matrizes. Por exemplo, pode-se 
anexar outra linha na matriz A usando: 
>> r= [ 10 11 12]; 
>> A= [A;r] 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 17 
que resulta em: 
A = 
 1 2 3 
 4 5 6 
 7 8 9 
 10 11 13 
Note que o vetor r não foi listado porque ao seu final foi acrescentado ";". 
Pequenas, matrizes podem ser extraídas de grandes matrizes usando ":". Por exemplo, 
>> A = A(1:3,:); 
seleciona as três primeiras linhas e todas as colunas da matriz A atual, modificando-a para sua 
forma original. 
1.10. INDEXAÇÃO DE ELEMENTOS DE MATRIZES 
O MATLAB utiliza a forma tradicional para indexar matrizes: 
)j,i(aa j,i = onde i representa número de linhas e j número de colunas 
Exemplo: 
>>A=[1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15] 
1514131211
109876
54321
A = 
>>A(2,4) % o elemento da segunda linha e quarta coluna 
ans= 9 
>>A(11) % o décimo primeiro elemento 
ans= 9 
15)15(14)12(13)9(12)6(11)3(
10)14(9)11(8)8(7)5(6)2(
5)13(4)10(3)7(2)4(1)1(
A = 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 18 
>>b=A(2,2:4) % cria uma matriz utilizando a segunda linha de A e as colunas 2, 3 e 4 de A 
b= 
 7 8 9 
 
>>c=A(:,3) % gera uma matriz c utilizando todas as linhas de A e somente a terceira coluna 
c= 
 3 
 8 
 13 
 
>>d=A(1, :) %gera uma matriz d utilizando a primeira linha de A e todas as colunas 
d= 
 1 2 3 4 5 
 
>>e=A(3,3:end) %gera uma matriz e utilizando a terceira linha de A e da terceira até a 
última coluna de A 
e= 
 13 14 15 
 
1.11. DIMENSÃO DE VETORES E MATRIZES 
 
As funções mais utilizadas para fornecer informações de uma matriz são: 
Size que mostra a ordem da matriz, número de linhas e número de colunas; 
Length mostra o número de linhas ou número de colunas, mostra somente o maior valor. 
 
Por exemplo: 
>> A=[1 2 3; 4 5 6; 7 8 9]' 
A = 
 1 4 7 
 2 5 8 
 3 6 9 
 
>> B=[ -1 4 -7 
 2 -5 8 
 -3 6 -9] 
B= 
 -1 4 -7 
 2 -5 8 
 -3 6 -9] 
 
>> C=1:9 
C = 
 
 1 2 3 4 5 6 7 8 9 
 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 19 
>> B=[B; 1 1 1] 
B = 
 
 -1 4 -7 
 2 -5 8 
 3 6 9 
 1 1 1 
 1 1 1 
 
>> size(B) 
ans = 
 
 5 3 
 
>> length(B) 
ans = 
 
 5 
 
1.12. MATRIZES ESPECIAIS 
 
O MATLAB dispõe de algumas matrizes especiais, onde algumas delas são de uso geral, 
enquanto outras são matrizes voltadas para aplicações especializadas. As matrizes de uso geral 
incluem: 
 
Find => retorna os índices de uma matriz, por exemplo, dos elementos não nulos. 
 
>> B=[B; 1 1 1; 1 2 3] 
B =-1 4 -7 
 2 -5 8 
 3 6 9 
 1 1 1 
 1 2 3 
 
>> c=find(B<0) 
c = 
 
 1 
 7 
 11 
 
zeros => retorna uma matriz nula na ordem que o usuário especificar: 
 
>> zeros(2,3) 
ans = 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 20 
 0 0 0 
 0 0 0 
 
>> zeros (3) 
ans = 
 
 0 0 0 
 0 0 0 
 0 0 0 
 
ones => retorna uma matriz de elementos iguais a 1: 
 
>> ones(3,1) 
ans = 
 
 1 
 1 
 1 
 
>> ones(4) 
ans = 
 
 1 1 1 1 
 1 1 1 1 
 1 1 1 1 
 1 1 1 1 
 
rand => retorna uma matriz de números aleatórios uniformemente distribuídos entre 0 e 1. 
>> rand(3) 
ans = 
 
 0.9501 0.4860 0.4565 
 0.2311 0.8913 0.0185 
 0.6068 0.7621 0.8214 
 
>> rand(2,3) 
ans = 
 
 0.4447 0.7919 0.7382 
 0.6154 0.9218 0.1763 
 
randn => retorna uma matriz de números aleatórios que seguem a distribuição normal, com 
média zero e variância igual a 1. 
 
 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 21 
>> randn(3,4) 
ans = 
 
 -0.4326 0.2877 1.1892 0.1746 
 -1.6656 -1.1465 -0.0376 -0.1867 
 0.1253 1.1909 0.3273 0.7258 
 
eye => retorna uma matriz identidade da ordem desejada: 
 
>> eye(5) 
ans = 
 
 1 0 0 0 0 
 0 1 0 0 0 
 0 0 1 0 0 
 0 0 0 1 0 
 0 0 0 0 1 
 
>> eye(3,4) 
 ans = 
 
 1 0 0 0 
 0 1 0 0 
 0 0 1 0 
 
Funções Sintaxe 
Det – determinante de uma matriz det(A) 
Diag – diagonal de uma matriz ou matriz diagonal a partir de um vetor diag(A) 
Inv – retorna a inversa da matriz inv(A) 
Reshape – reformata as dimensões de uma matriz, mantendo o número original de elementos reshape(A, m,n) 
Numel – Retorna o número de elementos de uma matriz numel(A) 
Ndims – retorna o número de dimensões da matriz ndims(A) 
Tril – retorna a matriz triangular inferior da matriz dada tril(A) 
Triu – retorna a matriz triangular superior da matriz dada triu(A) 
 
1.13. NÚMEROS E MATRIZES COMPLEXA S 
Números complexos são permitidos em todas operações e funções no MATLAB. Os números 
complexos são introduzidos usando-se as funções especiais i e j. Por exemplo 
>> z= 3 + 4*i 
ou 
>> z= 3 +4*j 
As seguintes declarações mostram dois caminhos convenientes para se introduzir matrizes 
complexas no MATLAB: 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 22 
>> A= [1 2; 3 4]+i*[5 6;7 8] 
e 
>> A= [1+5*i 2+6*i; 3+7*i 4+8*i] 
que produzem o mesmo resultado. 
1.14. FUNÇÕES MATEMÁTICAS ELEMENTARES 
A "força" do MATLAB vem de um conjunto extenso de funções. O MATLAB possui um grande 
número de funções intrínsecas que não podem ser alteradas pelo usuário. Outras funções estão 
disponíveis em uma biblioteca externa distribuída 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; 
· Matrizes especiais; 
· Decomposição de matrizes; 
· Polinômios; 
· Solução de equações diferenciais; 
· Equações não-lineares e otimização; 
· Integração numérica; 
Alguns exemplos: 
>>x=0.5 
>>sin(x) 
>>cos(x) 
>>sqrt(x) 
>>exp(x) 
1.15. AS FACILIDADES DO HELP (A JUDA ) 
O MATLAB possui um comando de ajuda (help) que fornece informações sobre a maior parte 
dos tópicos. 
Digitando: 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 23 
>> help 
Obtém-se uma lista desses tópicos disponíveis: 
matlab\general - General purpose commands. 
matlab\ops - Operators and special characters. 
matlab\lang - Programming language constructs. 
matlab\elmat - Elementary matrices and matrix manipulation. 
matlab\elfun - Elementary math functions. 
matlab\specfun - Specialized math functions. 
matlab\matfun - Matrix functions - numerical linear algebra. 
matlab\datafun - Data analysis and Fourier transforms. 
matlab\audio - Audio support. 
matlab\polyfun - Interpolation and polynomials. 
matlab\funfun - Function functions and ODE solvers. 
matlab\sparfun - Sparse matrices. 
matlab\graph2d - Two dimensional graphs. 
matlab\graph3d - Three dimensional graphs. 
matlab\specgraph - Specialized graphs. 
matlab\graphics - Handle Graphics. 
matlab\uitools - Graphical user interface tools. 
matlab\strfun - Character strings. 
matlab\iofun - File input/output. 
matlab\timefun - Time and dates. 
matlab\datatypes - Data types and structures. 
matlab\verctrl - Version control. 
matlab\winfun - Windows Operating System Interface Files 
(DDE/ActiveX) 
matlab\demos - Examples and demonstrations. 
toolbox\local - Preferences. 
simulink\simulink - Simulink 
simulink\blocks - Simulink block library. 
. 
. 
. 
MATLABR12\work - (No table of contents file) 
For more help on directory/topic, type "help topic". 
Para obter informações sobre um tópico específico, digite help tópico. Por exemplo: 
>> help plot 
que fornece uma lista de todos os comandos relacionados com gráficos bidimensionais: 
 PLOT Linear plot. 
 PLOT(X,Y) plots vector Y versus vector X. If X or Y is a matrix, 
 then the vector is plotted versus the rows or columns of the matrix, 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 24 
 whichever line up. If X is a scalar and Y is a vector, length(Y) 
 disconnected points are plotted. 
 PLOT(Y) plots the columns of Y versus their index. 
 If Y is complex, PLOT(Y) is equivalent to PLOT(real(Y),imag(Y)). 
 In all other uses of PLOT, the imaginary part is ignored. 
 
 Various line types, plot symbols and colors may be obtained with 
 PLOT(X,Y,S) where S is a character string made from one element 
 from any or all the following 3 columns: 
 
 b blue . point - solid 
 g green o circle : dotted 
 r red x x-mark -. dashdot 
 c cyan + plus -- dashed 
 m magenta * star 
 y yellow s square 
 k black d diamond 
 v triangle (down) 
 ^ triangle (up) 
 < triangle (left) 
 > triangle (right) 
 p pentagram 
 h hexagram 
 
 For example, PLOT(X,Y,'c+:') plots a cyan dotted line with a plus 
 at each data point; PLOT(X,Y,'bd') plots blue diamond at each data 
 point but does not draw any line. 
 
 PLOT(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...) combines the plots defined by 
 the (X,Y,S) triples, where the X's and Y's are vectors or matricesand the S's are strings. 
 
 For example, PLOT(X,Y,'y-',X,Y,'go') plots the data twice, with a 
 solid yellow line interpolating green circles at the data points. 
 
 The PLOT command, if no color is specified, makes automatic use of 
 the colors specified by the axes ColorOrder property. The default 
 ColorOrder is listed in the table above for color systems where the 
 default is blue for one line, and for multiple lines, to cycle 
 through the first six colors in the table. For monochrome systems, 
 PLOT cycles over the axes LineStyleOrder property. 
 
 PLOT returns a column vector of handles to LINE objects, one 
 handle per line. 
 
 The X,Y pairs, or X,Y,S triples, can be followed by 
 parameter/value pairs to specify additional properties 
 of the lines. 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 25 
 
 See also SEMILOGX, SEMILOGY, LOGLOG, PLOTYY, GRID, CLF, CLC, TITLE, 
 XLABEL, YLABEL, AXIS, AXES, HOLD, COLORDEF, LEGEND, SUBPLOT, STEM. 
 
 Overloaded methods 
 help cfit/plot.m 
 help cgrules/Plot.m 
 help xregtwostage/plot.m 
 help xregtransient/plot.m 
 help xregmodel/plot.m 
 help localmod/plot.m 
 help sweepset/plot.m 
 help mdevtestplan/plot.m 
 help cgdatasetnode/plot.m 
 help cgdatadisplay/plot.m 
 help idmodel/plot.m 
 help iddata/plot.m 
 help ntree/plot.m 
 help dtree/plot.m 
 help wvtree/plot.m 
 help rwvtree/plot.m 
 help edwttree/plot.m 
Finalmente, para obter informações sobre um comando específico, por exemplo title, digite: 
>> help title 
e informações mais detalhadas sobre este comando serão exibidas: 
>> help title 
 
 TITLE Graph title. 
 TITLE('text') adds text at the top of the current axis. 
 
 TITLE('text','Property1',PropertyValue1,'Property2',PropertyValue2,...) 
 sets the values of the specified properties of the title. 
 
 H = TITLE(...) returns the handle to the text object used as the title. 
 
 See also XLABEL, YLABEL, ZLABEL, TEXT. 
Note que no exemplo mostrado para adicionar o título em um gráfico, TITLE (‘text’) está escrito 
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 adicionar o texto "Título do 
Gráfico" em um gráfico, digite: 
>> title (‘Título do Gráfico’) 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 26 
2. OPERAÇÕES COM MATRIZES 
As operações com matrizes no MATLAB são as seguintes: 
· Adição; 
· Subtração; 
· Multiplicação; 
· Divisão à direita; 
· Divisão à esquerda; 
· Potenciação; 
· Transposta; 
As operações serão mostradas com mais detalhes e um exemplo de cada. 
2.1 TRANSPOSTA 
O caracter apóstrofo, " ' " , indica a transposta de uma matriz. A declaração de: 
>> A = [1 2 3; 4 5 6; 7 8 0] 
>> B = A' 
que resulta em: 
A = 1 2 3 
 4 5 6 
 7 8 0 
B = 1 4 7 
 2 5 8 
 3 6 0 
e 
>> x = [-1 O 2]' 
produz|: 
x = 
 -1 
 0 
 2 
Se Z é uma matriz complexa, Z’ será o conjugado complexo composto. Para obter simplesmente 
a transposta de Z deve-se usar Z.’, como mostra o exemplo: 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 27 
>> Z = [1 2; 3 4] + [5 6; 7 8]*i 
>> Z1 = Z’ 
>> Z2 = Z.’ 
que resulta em: 
Z = 
 1.0000 + 5.0000i 2.0000 + 6.0000i 
 6.0000 + 7.0000i 4.0000 + 8.0000i 
 
Z1 = 
 1.0000 - 5.0000i 3.0000 - 7.0000i 
 2.0000 - 6.0000i 4.0000 - 8.0000i 
 
Z2 = 1.0000 + 5.0000i 3.0000 + 7.0000i 
 2.0000 + 6.0000i 4.0000 + 8.0000i 
 2.2 ADIÇÃO E SUBTRAÇÃO 
A adição e subtração de matrizes são indicadas, respectivamente, por "+" e "-". As operações são 
definidas somente se as matrizes têm as mesmas dimensões. Por exemplo, a soma com as 
matrizes mostradas acima, A + x, não é correta porque A é 3x3 e x é 3x1. Porém, 
>> C = A + B 
é aceitável, e o resultado da soma é: 
C = 
 2 6 10 
 6 10 14 
 10 14 0 
A adição e subtração também são definidas se um dos operadores é um escalar, ou seja, uma 
matriz l x l. Neste caso, o escalar é adicionado ou subtraído de todos os elementos do outro 
operador. Por exemplo: 
>> y = x - 1 
resulta em: 
y = 
 -2 
 -1 
 1 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 28 
 2.3 MULTIPLICAÇÃO 
A multiplicação de matrizes é indicada por "*". A multiplicação x*y é definida somente se a 
segunda dimensão de x for igual à primeira dimensão de y, ou seja, o número de colunas da 
primeira matriz for igual ao número de linhas da segunda matriz. Assim a multiplicação pode ser 
executada como: 
>> x'* y 
É aceitável, e resulta em: 
ans = 
 4 
É evidente que o resultado da multiplicação y'*x será o mesmo. Existem dois outros produtos que 
são transpostos um do outro. 
>> x*y’ 
Ans = 
 2 l -l 
 0 0 0 
 -4 -2 2 
>> y*x’ 
Ans = 
 2 0 -4 
 1 0 -2 
 -1 0 2 
O produto de uma matriz por um vetor também pode ser executado, por exemplo, A e x: 
>> b = A*x 
que resulta em: 
b = 
 5 
 8 
 -7 
Naturalmente, um escalar pode multiplicar ou ser multiplicado por qualquer matriz. 
>> pi*x 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 29 
Ans = 
 -3.1416 
 0 
 6.2832 
Para realizar a multiplicação de elemento por elemento de duas matrizes é necessário utilizar o 
símbolo de multiplicação escalar pontuada .*. O ponto precede o asterisco, símbolo padrão da 
multiplicação, diz ao MATLAB para fazer a multiplicação elemento por elemento. A 
multiplicação sem o ponto significa multiplicação matricial. 
>> g=[1 2 3 4 
5 6 7 8 
9 10 11 12] 
g = 
 
 1 2 3 4 
 5 6 7 8 
 9 10 11 12 
 
>> h=[1 1 1 1; 2 2 2 2; 3 3 3 3] 
h = 
 
 1 1 1 1 
 2 2 2 2 
 3 3 3 3 
 
>> g.*h 
ans = 
 
 1 2 3 4 
 10 12 14 16 
 27 30 33 36 
2.4 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 A/B correspondem respectivamente a inv(A)*B e A*inv(B), 
por exemplo: 
>>A=[1 2; 3 4] 
>>B=[5 6; 7 8] 
 
 
 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 30 
>>A/B 
ans = 
 3.0000 -2.0000 
 2.0000 -1.0000 
 
>>A\B 
ans = 
 -3.0000 -4.0000 
 4.0000 5.0000 
 
>> g./h 
ans = 
 
 1.0000 2.0000 3.0000 4.0000 
 2.5000 3.0000 3.5000 4.0000 
 3.0000 3.3333 3.6667 4.0000 
 
2.5 POTENCIAÇÃ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 potenciação é computada como múltiplas multiplicações. 
Por exemplo: 
>> A^3 
ans = 
 279 360 306 
 684 873 684 
 738 900 441 
 
>> g.^2 
ans = 
 
 1 4 9 16 
 25 36 49 64 
 81 100 121 144 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 31 
>> 2.^g 
ans = 
 
 2 4 8 16 
 32 64 128 256 
 512 1024 2048 4096 
 
>> g.^h 
ans = 
 
 1 2 3 4 
 25 36 49 64 
 729 1000 1331 1728 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
CursoIntrodutório de MATLAB 6.5 32 
 
3. OPERAÇÕES RELACIONAIS E LÓGICAS 
 
3.1. OPERADORES RELACIONAIS 
 
< Menor que 
<= Menor ou igual a 
> Maior que 
>= Maior ou igual a 
= = Igual a 
~= Diferente de 
 
Exemplos: 
 
>> A=1:9 
>> B=9-A 
A=1 2 3 4 5 6 7 8 9 
B=8 7 6 5 4 3 2 1 0 
 
>> vf=A>4 
vf = 
 0 0 0 0 1 1 1 1 1 
 
>> vf1=(A==B) 
vf1 = 0 0 0 0 0 0 0 0 0 
A comparação é feita entre os pares de elementos correspondentes e o resultado é uma matriz 
composta dos números um e zero, com um representando VERDADEIRO e zero, FALSO. Por 
exemplo, 
>> 2 + 2 ~= 4 
ans = 
 0 
3.2. OPERADORES LÓGICOS 
& E 
| Ou 
~ Não 
Pode-se usar, também os operadores lógicos como mostrados a seguir: 
>> 1= = 1 & 4 = = 3 
ans = 
 0 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 33 
>> 1 = = 1 | 4 = = 3 
ans = 
 1 
 
3.3. ARQUIVOS M DE COMANDOS 
 
Para problemas simples, é mais rápido introduzir comandos no prompt do MATLAB, ou seja, no 
próprio Command Window. Entretanto, se o número de comandos é grande e você vai precisar 
repetir tais cálculos, então é melhor abrir um arquivo de texto simples e depois pedir para o 
MATLAB executar esse programa. Esses arquivos são chamados de arquivos M ou arquivos de 
comandos. São salvos com a extensão .m. Para criar um arquivo basta selecionar New do menu 
File e, então, selecione M-File. Esse procedimento abre uma janela do editor de texto na qual 
você pode escrever os comandos do MATLAB. 
Em virtude da grande utilidade dos arquivos de comandos o MATLAB possui várias funções 
apropriadas para o uso em arquivos M. Essas funções são: 
 
Comandos Descrição 
disp(ans) Mostra os resultados sem identificar o nome das variáveis 
echo Controla a exibição dos comandos dos arquivos M na janela de comandos 
input Solicita ao usuário que forneça um dado de entrada 
pause Suspende a execução até que o usuário pressione alguma tecla 
pause (n) Suspende a execução por n segundos 
waitforbuttonpress Suspende a execução até que o usuário pressione uma tecla ou um botão do 
mouse. 
Exemplos de arquivos M 
 
1) Calcular a soma de três números: 
 
%Exemplo da soma de tres numeros 
% 
echo on 
n1=input( 'Entre com o primeiro numero: ' ); 
n2=input( 'Entre com o segundo numero: ' ); 
n3=input( 'Entre com o terceiro numero: ' ); 
soma=n1+n2+n3; 
disp( ' ' ) 
disp( ' ' ) 
disp([ 'o resultado da soma é: ' num2str(soma)]) 
 
 
2)Utilizando a função sum, elaborar um programa que calcule: 
54321 x3
2
x
2
5
x
8
4
x
5
3
xs --+-= 
Entrada de dados: 1x1 = x2=-3 x3=12 x4=-1/8 x5=20/7 
 
3) Calcular o somatório dos números ímpares de 3 a 65 e o produtório dos números pares de 8 a 
64. O aluno deve usar as funções: sum e prod. 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 34 
 
4. CONTROLE DE FLUXO 
Os comandos que controlam o fluxo especificam a ordem em que a computação é feita. No 
MATLAB estes comandos são semelhantes aos usados na linguagem C, mas com uma estrutura 
diferente (mais simples). 
4.1. LAÇO FOR 
O laço for é o controlador de fluxo mais simples e usado na programação MATLAB. 
Estrutura Geral 
 for x = <valor inicial>:<incremento>:<valor final> 
 comandos 
 end 
Os comandos entre as instruções “for” e “end” são executados uma vez para cada coluna do 
vetor. Por exemplo: 
>> for i=1:5, 
 X(i)=i^2; 
 end 
O laço for possibilita que uma série de comandos seja repetida por um número de vezes fixo e 
pré-definido. O comando end é usado como limite inferior do corpo do laço. 
É comum construções com conjuntos de laços for aplicados a implementações de matrizes: 
 for i= 1:8 
for j= 1:8, 
A(i,j)= i+j; 
 
B(i,j)= i-j; 
 
end 
 end 
 
 C=A +B; 
 
Exemplos: 
1) Calcular a tabuada do número 17. 
for n=0:10 
 tab(n+1)=17*n; 
end 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 35 
disp(tab) 
2) Mostrar todos os números pares de 0 a 100. 
soma=0; 
for n=0:2:100 
 soma=soma+n; 
end 
disp(soma) 
3) Calcular o fatorial de um número n. 
n=input(‘Digite um valor para calcular o fatorial: ‘) ; 
fatorial=1; 
for a=1:n 
 fatorial=fatorial*a; 
end 
disp(fatorial) 
4.2. LAÇO WHILE 
Ao contrário do Laço For, que executa um grupo de comandos um número fixo de vezes, o laço 
while executa um grupo de comandos um número indefinido de vezes. 
A estrutura geral é: 
while expressão 
 comandos 
end 
Os comandos entre as instruções while e end são executados enquanto todos os elementos de 
expressão forem verdadeiros. 
Exemplos: 
1) Calcular o fatorial de um número qualquer. 
%Fatorial com While 
x=input('Digite um valor: '); 
fat=1; 
while x>0 
 fat=fat*x; 
 x=x-1; 
end 
disp(fat) 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 36 
2) Calcule a seguinte série com 50 termos: 
....
2
7
2
5
2
3
2
1
++++=x 
%Cálculo da Série 
n=0; 
x=1; 
serie=0; 
while n<50 
 serie=serie+x/2; 
 x=x+2; 
 n=n+1; 
end 
disp(serie) 
1250 
No laço while apenas a condição é testada. Por exemplo, na expressão: 
a = l; b = 15; 
while a<b, 
 clc 
 a = a+l 
 b = b-l 
 pause(l) 
end 
disp(‘fim do loop’) 
a condição a<b é testada. Se ela for verdadeira o corpo do laço, será executado. 
Então a condição é testada novamente, e se verdadeira o corpo será executado novamente. 
Quando o teste se tornar falso o laço terminará, e a execução continuará no comando que segue o 
laço após o end. 
4.3. ESTRUTURA IF -ELSE-END 
Em diversas situações, as seqüências de comandos têm de ser executadas condicionalmente, com 
base em um teste relacional. Essa lógica é implementada por meio de uma das diversas formas da 
estrutura if-else-end. A mais simples é: 
if expressão 
 comandos 
end 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 37 
Os comandos entre as instruções if e end são executados se todos os elementos na expressão 
forem Verdadeiros. 
Exemplo: 
Calcular o desconto de 20% para um número de cadeiras maior que 5. Sendo que o custo de cada 
cadeira é de R$55,00. 
cadeiras=input('digite o numero de cadeiras desejadas: '); 
preco=55; 
custo=cadeiras*preco; 
if cadeiras>5 
 custo=(1-20/100)*custo; 
end 
disp(custo) 
 
Outra forma de usar a estrutura é: 
if expressão 
 comandos executados se Verdadeiro 
else 
 comandos executados se Falso 
end 
Exemplos: 
1) Dado qualquer distância que um veículo deve percorrer (valor real em km), a capacidade do 
tanque de combustível (valor real em l) e a média de consumo de combustível do veículo (valor 
real em km/l). Supondo que o tanque estará cheio na partida, mostrar umas das mensagens: 
DEVE HAVER REABASTECIMENTO 
OU 
NÃO DEVE HAVER REABASTECIMENTO 
% DISTÂNCIA 
% 
d=input('Digite a distância a ser percorrida: '); 
mc=15; %media de consumo 
ct=45; %capacidade do tanque 
if mc*ct>=d 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 38 
 disp('Não deve haver reabastecimento') 
else 
 disp('Deve haver reabastecimento') 
end 
testar para 780km e 600km 
15*45=675km 
2) Os funcionários contratados pela prefeitura de uma cidade são classificados em 3 (três) níveis 
conforme a pontuação obtida em 2 (duas) provas aplicadas de acordo com o seguinte critério: 
Nível Pontuação 
A Superior a 8 em pelo menos uma das provas ou soma dos pontos superior a 14. 
B Superior a 6 em pelo menos uma dasprovas ou soma dos pontos superior a 9. 
C Nenhum dos casos acima. 
Em cada prova a pontuação é um valor real de 0 a 10. Desenvolva um programa que receba 2 
(duas) notas de um funcionário e mostre como resposta o nível em que está classificado. 
%Classificação de Funcionários 
nota1=input('Digite a primeira nota: '); 
nota2=input('Digite a segunda nota: '); 
if nota1>=8 | nota2>=8 | (nota1+nota2)>=14 
 disp('aluno nível A') 
elseif nota1>=6 | nota2>=6 | (nota1+nota2)>=9 
 disp('aluno nível B') 
else 
 disp('aluno nivel C') 
end 
4.4. ESTRUTURA SWITCH -CASE 
 Essa estrutura funciona como uma chave seletora, escolhendo a expressão correta para 
executar os comandos. 
Estrutura geral 
switch expressão 
case teste_expressão1 
 comandos 1 
case {teste_expressão2, teste_expressão3, teste_expressão4} 
 comandos 2 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 39 
otherwise 
 comandos 3 
end 
A expressão pode ser um escalar ou string de caracteres. Quando expressão é um escalar o 
comando case testa se expressão == teste_expressão e quando é um string o teste é efetuado pelo 
comando strcmp que compara duas strings e retorna 1 se são iguais e o caso contrário. 
Exemplos: 
1) Conversão de unidades: 
%Conversão de unidades 
% 
x=input('Entre com o valor numérico: '); 
unidades=input('Digite a unidade desejada: '); 
switch unidades 
case{'polegadas','pol'} 
 y=x/2.54; 
 disp([num2str(y) 'pol']) 
case{'pes', 'p'} 
 y=x/(2.54*12); 
 disp([num2str(y) 'pes']) 
case{'metros','m'} 
 y=x/100; 
 disp([num2str(y) 'm']) 
case{'centimetros','cm'} 
 y=x; 
 disp([num2str(y) 'cm']) 
otherwise 
 disp(['Unidade Desconhecida: ' unidades]) 
end 
 
2) Faça um programa que o usuário possa digitar qualquer mês do ano e como resultado seja 
mostrado o número de dias do mês correspondente. 
 
%Programa para saber quantos dias tem o mes 
% 
mes=input('digite o mes desejado: '); 
switch mes 
case {'Janeiro','Marco','Maio','Julho','Agosto','Outubro','Dezembro'} 
 disp('31 dias') 
case {'Fevereiro'} 
 disp('28 ou 29 dias') 
case {'Abril','Junho','Setembro','Novembro'} 
 disp('30 dias') 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 40 
otherwise 
 disp('Esse mes nao existe') 
end 
 
Nesse caso em especial a variável mês é uma string, portanto a entrada de dados deve ser também 
uma string para que haja comparação em cada caso. Pode-se usar ao invés de uma string 
simplesmente um escalar, é só nomear cada variável mês como um escalar. 
 
%Programa para saber quantos dias tem o mes 
% 
janeiro='Janeiro'; 
marco='Marco'; 
fevereiro='Fevereiro'; 
abril='Abril'; 
maio='Maio'; 
junho='Junho'; 
julho='Julho'; 
agosto='Agosto'; 
setembro='Setembro'; 
novembro='Novembro'; 
dezembro='Dezembro'; 
mes=input('digite o mes desejado: '); 
switch mes 
case {'Janeiro','Marco','Maio','Julho','Agosto','Outubro','Dezembro'} 
 disp('31 dias') 
case {'Fevereiro'} 
 disp('28 ou 29 dias') 
case {'Abril','Junho','Setembro','Novembro'} 
 disp('30 dias') 
otherwise 
 disp('Esse mes nao existe') 
end 
 
3) Outro exemplo seria entrar com um número de 1 a 12 e o programa lhe fornecer o mês 
correspondente. 
%Programa para saber quantos dias tem o mes 
mes=input('digite o mes desejado em numero: '); 
switch mes 
case 1 
 disp('Janeiro') 
case 2 
 disp('Fevereiro') 
case 3 
 disp('Marco') 
case 4 
 disp('Abril') 
case 5 
 disp('Maio') 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 41 
case 6 
 disp('Junho') 
case 7 
 disp('Julho') 
case 8 
 disp('Agosto') 
case 9 
 disp('Setembro') 
case 10 
 disp('Outubro') 
case 11 
 disp('Novembro') 
case 12 
 disp('Dezembro') 
otherwise 
 disp('Esse mes nao existe') 
end 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 42 
5. ARQUIVOS M DE FUNÇÕES 
 
É um programa elaborado como arquivo.m e que calcula algo desejado pelo programador, 
devolvendo somente o valor da resposta. Os comandos executados por esse programa ficam 
ocultos. Você só visualiza o que entra e o que sai, ou seja, uma função é uma caixa preta. 
 
 
 
 
 
 
5.1. PORQUE USAR FUNÇÕES? 
 
São necessárias quando existe uma seqüência de comandos que são sempre úteis para serem 
calculados ou mesmo funções matemáticas. 
 
Exemplo de uma função do próprio Matlab: 
 
flipud => inverte as linhas de uma matriz 
 
ú
ú
ú
û
ù
ê
ê
ê
ë
é
-
-=
103
121
021
X flipud(X)=
ú
ú
ú
û
ù
ê
ê
ê
ë
é
-
-
021
121
103
 
 
5.2. PRINCIPAL DIFERENÇA ENTRE ARQUIVO .M DE FUNÇÕES E ARQUIVO.M DE COMANDOS: 
 
A principal diferença é que o arquivo.m de função se comunica com o Matlab apenas por meio 
das variáveis de entrada e saída que ela cria. As variáveis intermediárias definidas internamente 
pela função não aparecem nem interage com o espaço de trabalho do Matlab. 
 
5.3. COMO ESCREVER UMA FUNÇÃO 
 
Linha 1 ® indica que o arquivo M contém uma função e especifica seu nome (que vem a ser o 
nome do arquivo sem a extensão .m) . Essa linha também define as variáveis de entrada e saída. 
 
Próximas Linhas ® São comentários (texto) explicando o que essa função calcula. 
 
5.4. REGRAS E PROPRIEDADES 
 
1) O nome da função tem que ser idêntico ao nome do arquivo. Por exemplo, a função flipud 
é armazena em um arquivo denominado flipud.m. 
2) Cada função possui seu próprio espaço de trabalho, separada do espaço de trabalho do 
Matlab. A única ligação é em relação as variáveis de entrada e saída da função. 
3) Pode-se verificar se a quantidade de argumentos de entrada e saída de uma função está 
correta através da variável nargin e nargout, são variáveis dentro do espaço de trabalho 
das funções. São usadas para atribuir valores pré-definidos à variáveis de entrada e 
determinar que variáveis de saída o usuário deseja. 
Entrada 
Cálculo 
Saída 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 43 
Por exemplo, a função linspace. 
Se os argumentos de entrada for igual a 2 ele usa números de pontos igual a 100 como 
padrão. 
Os arquivos m de funções podem conter mais funções dentro deles, ou seja, uma função dentro 
de outra função. 
 
Exemplos: 
 
1) Calcular o fatorial de um número usando função: 
% Calculo do Fatorial de um numero 
g=input('digite um numero: '); 
f=fatorial(g); 
disp(['Este eh o resultado: ' num2str(f)]) 
 
function fat=fatorial(x) 
%Calcula o fatorial 
fat=1; 
for n=1:x 
 fat=fat*n; 
end 
 
2) Calcular as raízes de uma equação de segundo grau: 
 
%Calcula as raizes de uma equacao de segundo grau. 
% 
g=input('entre com 1 numero: '); 
h=input('entre com 2 numero: '); 
i=input('entre com 3 numero: '); 
[r1,r2,t]=baskara(g,h,i) 
 
 
function [x1,x2,m]=baskara(a,b,c) 
delta=b^2-4*a*c; 
x1=(-b+sqrt(delta))/2*a; 
x2=(-b-sqrt(delta))/2*a; 
if delta>0 
 m='raizes distintas e reais'; 
elseif delta==0 
 m='raizes reais e iguais'; 
else 
 m='raizes complexas'; 
end 
 
 
 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 44 
3) Colocar três números quaisquer em ordem crescente: 
 
%Coloca em ordem crescente tres numeros quaisquer 
% 
x=input('numero 1: '); 
y=input('numero 2: '); 
w=input('numero 3: '); 
[a1,a2,a3]=ordem(x,y,w) 
 
function [a,b,c]=ordem(a,b,c) 
if a>b 
 temp=a; 
 a=b; 
 b=temp; 
end 
if b>c 
 temp=b; 
 b=c; 
 c=temp; 
end 
if a>b 
 temp=a; 
 a=b; 
 b=temp; 
end4) Colocar três números quaisquer em ordem crescente, mas usando duas funções (função de 
função): 
 
%Programa principal 
%Ler três números e colocá-los em ordem crescente usando função de função: 
% 
g=input(‘entre com o primeiro numero: ‘); 
h= input(‘entre com o segundo numero: ‘); 
i= input(‘entre com o terceiro numero: ‘); 
[a1,a2,a3]=ordem2(g,h,i); 
a1 
a2 
a3 
 
%Função 1 
%inverte os valores colocando em ordem crescente 
[a,b]=troca(a,b); 
[b,c]=troca(b,c); 
[a,b]=troca(a,b); 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 45 
%Função 2 
%realiza a troca dos valores 
if x>y 
 temp=x; 
 x=y; 
 y=temp; 
end 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 46 
 
6. ANÁLISE NUMÉRICA 
 
Nos casos em que é dificil integrar, derivar ou determinar analíticamente algum valor específico 
de uma função, o computador pode ser utilizado para aproximar de uma forma numérica a 
solução desejada. Essa área da ciência da computação e da matemática é conhecida como análise 
numérica e é claro que o MATLAB possui ferramentas para resolver esses problemas. 
 
6.1. OTIMIZAÇÃO 
 
fminbnd = retorna a coordenada X do valor mínimo de uma função de uma variável F(X) em um 
intervalo fixo. 
 
Exemplo: 
Achar o valor mínimo da função f(x)=x2-x+cos(x) implementada em ‘func01.m’: 
No intervalo [0:pi] 
No intervalo [2:3] 
func01.m: y=func01(x)= x2-x+cos(x) 
 
function y=func01(x) 
%funcao para integrar 
y=x.^2-x+cos(x); 
 
>> xm1=fminbnd('func01',0,pi) 
 
xm1 = 
 
 0.8879 
 
>> xm2=fminbnd('func01',2,3) 
 
xm2 = 
 
 2.0001 
 
>> x=0:0.1:pi; 
>> plot(x,func01(x),xm1,func01(xm1),'r*',xm2,func01(xm2),'go') 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 47 
 
 
 
fzero = retorna coordenada X, tal que F(X)=0. Inicia busca a partir de um valor inicial, X0, 
fornecido. 
 
Exemplo: 
Achar o f(x)=0 da função f(x)=x3-2x+1 implementada em ‘func02.m’: 
Começando a busca com –1.5 
Começando a busca com 0. 
>> xz1=fzero('func02',-1.5) % f(xz1)=0 , a partir de -1.5 
 
xz1 = 
 
 -1.6180 
 
>> xz2=fzero('func02',0) %f(xz2)=0, a partir de 0 
 
xz2 = 
 
 0.6180 
 
>> x=-2:0.1:2; 
>> plot(x,func02(x),xz1,func02(xz1),'r*',xz2,func02(xz2),'go') 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 48 
 
 
6.2. INTEGRAÇÃO NUMÉRICA 
Os dois comandos do MATLAB para integração usando quadratura são: 
quad Calcular integral numérica, método de ordem baixa. 
quadl Calcular integral numérica, método de ordem alta. 
 
Exemplo: integral de ‘func01.m’entre –2 e 1 (área abaixo da curva). 
 
>> q=quad('func01',-2,1) 
 
q = 
 
 6.2508 
>> q1=quadl('func01',-2,1) 
 
q1 = 
 
 6.2508 
 
>> x=-3:0.1:3; 
>> xt=-2:0.2:1; 
>> yt=func01(xt); 
>> plot(x,func01(x)) 
>> hold on 
>> area(xt,yt) 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 49 
 
 
6.3. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS 
As funções do Matlab usadas para resolver equações diferenciais são: 
ode45: solver de equações diferenciais non-stiff de ordem média 
ode23: solver de equações diferenciais non-stiff de ordem baixa 
ode113: solver de equações diferenciais non-stiff de ordem variável 
ode23t: solver de equações diferenciais de ordem baixa (regra trapezoidal) 
ode15s: solver de equações diferenciais stiff de ordem variável 
ode23s: solver de equações diferenciais stiff de ordem baixa 
ode23tb: solver de equações diferenciais stiff de ordem baixa 
 
sintaxe: [t,y]=ode45(‘funcao’,[Tinicial Tfinal], CondIniciais); 
 
Exemplo: 
function yt=func04 (t,y) 
%func04 (t,y) retorna as derivadas de estado da equaç~ao 
% x''-log(x)*x'+sin(x)=0 
%considere: 
%y(1)=x 
%y(2)=x' 
%desta forma, teremos: 
%y(1)'=y(2) 
%y(2)'=log(y(1))*y(2)-sin(y(1)) 
yt=[y(2) log(y(1))*y(2)-sin(y(1))]'; %vetor coluna 
 
>> Tinicial=0; 
>> Tfinal=5; 
>> Yinicial=[1,0]; 
>> [t,y]=ode45('func04',[Tinicial Tfinal],Yinicial); 
>> plot(t,y(:,1),'r',t,y(:,2)) 
Warning: Imaginary parts of complex X and/or Y arguments ignored. 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 50 
Warning: Imaginary parts of complex X and/or Y arguments ignored. 
 
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 51 
 
7. POLINÔMIOS 
 
7.1 RAÍZES 
 
Encontrar raízes de um polinômio, isto é, os valores para os quais o polinômio é igual a zero. No 
MATLAB, um polinômio é representado por um vetor linha contendo seus coeficientes em 
ordem decrescente. Por exemplo: 11625012 234 +++- xxxx é introduzido como: 
 
>> p=[1 –12 0 25 116] 
p= 
 1 –12 0 25 116 
 
Dada essa forma, as raízes do polinômio são encontradas usando-se a função roots: 
 
>>r= roots(p) 
r= 
 11.7473 
 2.7028 
 -1.2251 + 1.4672i 
 -1.2251 - 1.4672i 
 
O MATLAB adota como convenção de colocar os polinômios como vetores linha e as raízes 
como vetores coluna. 
Dadas as raízes também é possível construir o polinômio associado, a função que executa isso é a 
poly como exemplo: 
 
 
» pp=poly(r) 
 
pp = 
 
 1.0000 -12.0000 -0.0000 25.0000 116.0000 
 
7.2. MULTIPLICAÇÃO 
 
A multiplicação polinomial é efetuada por meio da função conv(que faz a convolução entre dois 
vetores). Consideremos o produto de dois polinômios 432)( 23 +++= xxxxa e 
1694)( 23 +++= xxxxb : 
 
>> a=[1 2 3 4]; b=[1 4 9 16]; 
>>c=conv(a,b) 
c= 
 1 6 20 50 75 84 64 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 52 
7.3.ADIÇÃO 
 
O MATLAB possui uma função direta para somar polinômios: 
 
>>d=a+b 
 
Quando dois polinômios forem de ordens diferentes, aquele que tiver menor ordem terá de ser 
preenchido com coeficientes iguais a zero, a fim de torná-lo da mesma ordem do polinômio de 
ordem mais alta. 
 
Exemplo: 
 
>> e= c+[0 0 0 d] 
e= 
1 6 20 52 81 96 84 
 
7.4. DIVISÃO 
 
A função usada no MATLAB é a deconv: 
 
>>[q,r]=deconv(c,b) 
 
q= 
1 2 3 4 
r= 0 0 0 0 0 0 0 
 
7.5 . CÁLCULO DE POLINÔMIOS 
 
>>x=linspace(-1,3); 
escolhe 100 pontos entre –1 e 3. 
>>p=[1 4 -7 -10]; 
define o polinômio p(x)=x3+4x2-7x-10 
>>v=polyval(p,x) 
calcula p(x) nos valores armazenados em x e armazena o resultado em v. O resultado pode ser 
representado graficamente usando-se: 
>>plot(x,v) 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 53 
 
7.6 . DERIVADA DE POLINÔMIOS 
 
polyder = derivada do polinômio 
 
Exemplo: Calcular a derivada de: 4x3xx2x2x4)x(5P 2345 +++++= 
>>p5=[4 2 2 1 3 4]; 
>>p5d=polyder(p5) 
p5d= 
 20 8 6 2 3 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 54 
8. GRÁFICOS 
A construção de gráficos no MATLAB é mais uma das facilidades do sistema. Através de 
comandos simples pode-se obter gráficos bidimensionais ou tridimensionais com qualquer tipo 
de escala e coordenada. Existe no MATLAB uma vasta biblioteca de comandos gráficos. 
 8.1. GRÁFICOS BIDIMENSIONAIS 
Estes são os comandos para plotar gráficos bidimensionais: 
Gráficos 2d 
plot Plotar linear. 
loglog Plotar em escala loglog. 
semilogx Plotar em semilog. 
semilogy Plotar em semilog. 
polar Plotar em coordenada polar. 
plotyy Plotar duas curvas no mesmo gráfico com escalas y diferentes 
Gráficos2d especiais 
Área Gráfico de área 
bar Gráfico de barras. 
barh Gráfico de barras horizontal 
pie Gráfico de pizza 
stairs Gráfico escada 
scatter Gráfico discreto que indica pontos com marcadores 
stem Gráfico discreto que indica pontos com hastes 
comet Gera gráfico com exibição de trajetória animada 
compass Gráficos de vetores 
feather Gráficos de vetores 
Ezplot Gráficos a partir de equações de funções 
ezpolar Gráficos a partir de equações de funções 
errorbar Plotar erro 
hist Plotar histograma. 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 55 
rose Plotar histograma em ângulo. 
fplot Plotar função. 
plotmatrix Mapeia o grafico da matriz 
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: 
>> Y = [0 0.48 0.84 1.0 0.91 0.6 0.14]; 
>> plot(Y) 
e o resultado é mostrado na Janela Gráfica: 
 
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) 
resulta em: 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 56 
No MATLAB também é possível plotar múltiplas linhas em apenas um gráfico. Existem duas 
maneiras, a primeira é usando apenas dois argumentos, como em plot(X,Y), onde X e/ou Y são 
matrizes. Assim: 
· 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)) 
 
 8.2. ESTILOS DE L INHA 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 --‘) 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 57 
 
Outros tipos de linhas, pontos e cores também podem ser usados: 
TIPO DE LINHA 
Solid _______________ 
-- -------------------- 
-. -.-.-.-.-.-.-.-.-.-.-.-. 
: .............................. 
Marcador 
. ....................... 
* * * * * * * * * 
° ° ° °° ° ° ° ° ° ° 
+ ++++++++++ 
X xx x x x x x x 
S quadrado 
D losango 
V Triângulo para baixo 
 ^ Triângulo para cima 
< Triângulo para esquerda 
> Triângulo para direita 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 58 
P Pentagrama 
H hexagrama 
 CORES 
Y amarelo 
M lilás 
C azul claro 
R vermelho 
G verde 
B azul escuro 
W branco 
K preto 
 
Comando subplot = Gera vários eixos em uma mesma janela. 
 
Sintaxe: 
 subplot(m,n,p) 
Parâmetros de entrada: 
m= número de eixos na vertical (número de linhas). 
n=Número de eixos na horizontal (número de colunas). 
p=Índice do eixo corrente 
 
As funções de plotagem são executadas no eixo corrente configurado pelos parâmetros indicados 
na última chamada subplot. 
 
Exemplo: subplot(2,3,1)=duas linhas e três colunas, total de 6 gráficos. 
>> x=0:0.01:pi; 
>> subplot(2,3,1) 
>> plot(x,sin(x)) 
>> subplot(2,3,2) 
>> plot(x,cos(x)/10) 
>> subplot(2,3,3) 
>> plot(x,2.^x) 
>> subplot(2,3,4) 
>> plot(x,sin(2*x).*x) 
>> subplot(2,3,5) 
>> plot(x,cos(2*x)) 
>> subplot(2,3,6) 
>> plot(x,cos(4*x)) 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 59 
 
8.3. NÚMEROS COMPLEXOS 
Quando os argumentos para plotar são complexos, a parte imaginária é ignorada, exceto quando é 
dado simplesmente um argumento complexo. Para este caso especial é plotada a parte real versos 
a parte imaginária. Então, plot(Z), quando Z é um vetor complexo, é equivalente a 
plot(real(Z),imag(Z)). 
Exemplo: 
>> c=0:0.1:100; 
>> A=1-2i; 
>> D=c*A; 
>> plot(D) 
 
 8.4. ESCALA LOGARÍTMICA , COORDENADA POLAR E GRÁFICO DE BARRAS 
O uso de loglog, semilogx, semilogy e polar é idêntico ao uso de plot. Estes comandos são 
usados para plotar gráficos em diferentes coordenadas e escalas: 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 60 
· polar(theta,r,fmt) plota em coordenadas polares o ângulo theta, em radianos, r que é a 
variação radial linear, e fmt é a cadeia de caracteres contendo a descrição do tipo de curva 
a ser traçado (como o plot); 
· loglog plota x e y com eixos logarítmicos ; 
· semilogx plota o eixo x logarítmico e y linear; 
· semilogy plota o eixo y logarítmico e x linear. 
Exemplos: 
>> theta=-2*pi:0.1:2*pi; 
>> whos 
 Name Size Bytes Class 
 
 A 1x1 16 double array (complex) 
 D 1x1001 16016 double array (complex) 
 Y 1x7 56 double array 
 ans 1x2 16 double array 
 b 1x16 128 double array 
 c 1x1001 8008 double array 
 t 1x26 208 double array 
 theta 1x126 1008 double array 
 x 1x315 2520 double array 
 y 1x26 208 double array 
 
Grand total is 2521 elements using 28184 bytes 
 
>> rho=1:126; 
>> polar(theta,rho,'r*') 
 
 
>> x=-2.9:0.2:2.9; 
>> y=exp(-x.*x); 
>> subplot(2,2,1) 
>> bar(x,y) 
>> title('Grafico de barras de uma curva em forma de sino'); 
>> subplot(2,2,2) 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 61 
>> bar3(x,y) 
>> title('Grafico de barras 3-D de uma curva em forma de sino'); 
>> subplot(2,2,3) 
>> stairs(x,y) 
>> title('Grafico em escada de uma curva em forma de sino'); 
>> subplot(2,2,4) 
>> barh(x,y) 
>> title('Grafico de barras horizontal'); 
 
8.5. PLOTANDO GRÁFICOS TRIDIMENSIONAIS E CONTORNOS 
O MATLAB possui muitos recursos para visualização de dados em 3D. Este item representa as 
principais funções relacionadas a este tópico. 
Estes são alguns comandos para plotar gráficos tridimensionais e contornos. 
Plot3 Cria uma curva no espaço 3D. 
meshgrid Gera uma superfície. 
mesh 
surf 
Gera malha de superfície a partir da coordenadas 
geradas pela função meshgrid. 
 
meshc 
meshz 
waterfall 
Geram variações de gráficos de malhas e superfícies. 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 62 
surfc 
cylinder Gera cilindro. 
sphere Gera esfera. 
Ellipsoid Cria uma elipsóide. 
Funções Gráficas 3-d Especiais 
Bar3 Gráfico de barra 3D vertical 
Bar3h Gráfico de barra 3D horizontal 
Pie3 Gráfico de pizza 3D 
comet3 Gráfico com exibição de trajetória 3D animada 
Ribbon Gráfico tipo faixa com formato dado por plot(x,y) 
contour 
contourf 
contour3 
Gráficos de curvas de nível. 
Ezplot3 Gera gráfico 3D a partir de equações paramétricas x(t) y(t) e z(t) 
Ezcontour 
Ezcontourf 
Ezmesh 
Ezmeshc 
Ezplot3 
ezsurf 
Geram gráficos apartir de equações de funções. 
Aplicações de alguns comandos: 
>> x=-4*pi:0.1:4*pi; 
>> y=-4*pi:0.1:4*pi; 
>> plot3(cos(x),sin(y),(x+y)) 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 63 
 
> >x=-pi:0.5:pi; 
>> y=-pi:0.5:pi; 
>> [Mx,My]=meshgrid(x,y); 
>> Mz=cos(Mx).*sin(My); 
>> mesh(Mx,My,Mz) 
>> surf(Mx,My,Mz) 
 
8.6. ANOTAÇÕES NO GRÁFICO 
O MATLAB possui comandos de fácil utilização para adicionar informações em um gráfico: 
title Título do gráfico. 
xlabel Título do eixo-X. 
ylabel Título do eixo-Y. 
zlabel Título do eixo-Z. 
text Inserir anotação no gráfico. 
Grid Linhas de grade. 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 64 
 Por exemplo: 
>> fplot(‘sin’, [-pi pi]) 
>> title(‘Gráfico da função f(x)=seno(x), -pi<x<pi’) 
>> xlabel(‘x’) 
>> ylabel(‘f(x)’) 
>> grid 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 65 
9. SIMULINK 
 
9.1.Apresentação 
 
SIMULINK é um programa utilizado para modelagem, simulação e análise de sistemas 
dinâmicos. O programa se aplica a sistemas lineares e não lineares, contínuos e/ou discretos no 
tempo. Utiliza uma interface gráfica com o usuário para construção dos modelos a partir de 
diagramas em blocos, através de operações de clique-e-arraste do mouse. Com esta interface 
podem-se criar modelos da mesma forma que se faz com papel e caneta. SIMULINK é o 
resultado de uma longa evolução de pacotes de simulação anteriores que necessitavam a 
formulação de equações diferenciais ou de equações de diferenças em linguagens de 
programação. Inclui bibliotecas de blocos contendo fontes, visualizadores, componentes lineares, 
não lineares e conectores, com a opção de criação ou personalização de blocos. 
Após a definição do modelo, a simulação pode ser feita com diferentes algoritmos de resolução, 
escolhidos a partir dos menus do SIMULINK ou da linha de comando do MATLAB. Os menus 
são particularmente convenientes para o trabalho interativo, enquanto a linha de comando tem 
sua utilidade na simulação repetitiva a qual se deseja somente mudar parâmetros. Usando 
osciloscópios (Scopes) ou outros visualizadores, têm-se o resultado gráfico da simulação 
enquanto esta está sendo executada. Os resultados da simulação podem ser exportados para o 
MATLAB para futuro processamento ou visualização. As ferramentas de análise de modelos 
incluem ferramentas de linearização e ajuste (Trimming) que podem ser acessadas a partir da 
linha de comando do MATLAB, assim como várias ferramentas do MATLAB e suas 
TOOLBOXES específicas. Sendo o MATLAB e o SIMULINK integrados, pode-se simular, 
analisar e revisar os modelos em qualquer dos dois ambientes. 
 
9.2. CONHECENDO E ACESSANDO O SIMULINK 
 
Para acessar o SIMULINK deve-se primeiro abrir o MATLAB, pois apesar de ser uma aplicação 
específica, este não trabalha independente e utiliza suas ferramentas de cálculo. 
Deve-se clicar duas vezes no ícone do MATLAB. Aberto o programa deve-se então clicar no 
ícone “Simulink” na barra de ferramentas do MATLAB ou digitar “simulink” na linha de 
comando e pressionar enter logo em seguida, como mostrado a seguir: 
 
>> simulink <enter> 
ou 
clique no ícone na barra de ferramentas. 
 
9.3.CONSTRUINDO UM MODELO SIMPLES 
 
Exemplificando a utilização do SIMULINK, temos um modelo a criar. Este deve resolver a 
equação diferencial: 
)tsen(x =& 
onde x(0)=0 
 
Sendo o SIMULINK uma extensão do MATLAB, este deve então ser carregado a partir do 
MATLAB. Inicie o SIMULINK clicando no seu ícone na barra de ferramentas do MATLAB, 
como mostrado na figura: 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 66 
 
 
Uma janela se abrirá na tela. Essa janela é a biblioteca de blocos do SIMULINK mostrado na 
figura. Para criar um modelo novo, clique no ícone documento em branco. 
 
Dê um click no ícone Sources na janela de bibliotecas do SIMULINK. 
 
 
 
Arraste o bloco de onda senoidal (Sine Wave) para a janela do modelo. Uma cópia deste bloco 
deve ser criada nesta janela. 
 
Abra a biblioteca de blocos lineares (contínuo) e arraste um bloco integrador (Integrator) para a 
janela do modelo. 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 67 
Abra a biblioteca de dispositivos de saída (Sinks) e arraste um SCOPE para a janela do modelo 
em construção. 
 
A seguir, conecte os blocos para completar o modelo como na figura a seguir: 
 
 
Dê um duplo click no bloco SCOPE e na barra de menu do SIMULINK clique 
SIMULATION:START . A simulação será executada, resultando no gráfico gerado no bloco 
SCOPE, mostrado a seguir: 
 
Obs.: A integral é definida entre to e tF. 
Para to = 0, cos(t)=1. 
 
 
Para verificar se o gráfico gerado representa a solução da equação diferencial desejada, deve-se 
resolver a mesma analiticamente, cujo resultado é: 
 
)tcos(1)t(x -= 
 
que corresponde ao gráfico apresentado. 
 
9.4.OUTRO MODELO 
 
O modelo anterior serviu como exemplo de implementação no SIMULINK, mas está longe de 
representar um caso usual de utilização do software devido à pequena quantidade de blocos e 
ligações. Agora será usado um modelo de um processo biológico para ilustrar vários níveis 
adicionais de dificuldade na implementação. 
 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 68 
 
 
 
Scheinerman descreveu um modelo simples do crescimento de bactérias isoladas do ambiente 
externo num pote. Admite-se que as bactérias nascem numa taxa proporcional ao número de 
bactérias presentes e que elas morrem a uma taxa proporcional ao quadrado do número de 
bactérias presentes. Se x representa o número de bactérias presentes, a taxa em que as bactérias 
nascem é definida por: 
 
Taxa de Natalidade = bx 
 
E a taxa em que elas morrem 
 
Taxa de Mortalidade = 2px 
 
A taxa total de mudança na população de bactérias é a diferença entre a natalidade e a 
mortalidade de bactérias. O sistema pode ser então descrito pela equação diferencial a seguir: 
 
2pxbxx -=& 
 
Partindo disto será então construído o modelo do sistema dinâmico supondo que b=1 
bactéria/hora e p=0,5 bactéria/hora. Será determinado o número de bactérias contidas no pote 
após 1 hora, admitindo que inicialmente existiam 100 bactérias presentes. 
Crie uma nova janela de modelo na barra de menu clicando novamente no ícone documento em 
branco. 
Este é um sistema de 1a ordem, o que quer dizer que requer somente um integrador para resolver 
a equação diferencial. A entrada do integrador é x& e a saída é x. Abra o biblioteca linear 
(contínuo) e arraste o integrador para a janela do modelo. 
Ainda na biblioteca Math arraste dois blocos de ganhos (Gain) para a janela do modelo e 
posicione-os como na figura. O SIMULINK exige que cada bloco tenha seu nome único. Devido 
a isto, o segundo bloco de ganho será nomeado GAIN1. 
Arraste ainda um bloco de soma (Sum) . 
 
 
 
Universidade Presbiteriana Mackenzie – Escola de Engenharia 
 
 
Curso Introdutório de MATLAB 6.5 69 
Abra agora a biblioteca de blocos não lineares (Nonlinear) e arraste um bloco de produto 
(product) para a posição mostrada. Este bloco será utilizado para calcular o valor de 2x . 
Abra a seguir a biblioteca dispositivo de saída (Sinks) e arraste um bloco SCOPE para a janela do 
modelo seguindo a posição mostrada. 
 
 
A orientação padrão do SIMULINK de todos os blocos é posicionar entradas à esquerda e saídas 
à direita. Porém este modelo será muito mais legível se invertermos os blocos de ganho e 
produto. Iniciando com o Produto, deve-se primeiro

Continue navegando