Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

0 
 
UNIVERSIDAD E FEDERAL DE VIÇOSA 
DEP – DEPARTAMENTO DE ENG DE PROD E MECÂNICA 
CURSO DE ENENHARIA MECÂNICA 
 
 
 
Matlab: um curso introdutório 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. Paulo Cezar Büchner 
 
 
VIÇOSA/MG 
2010
Organização: 
 
 
 
PROF PAULO
Nota
Caros leitores, esse texto ainda não foi revisado, portanto, há nele alguns erros que pretendo corrigi-los em versões futuras. Ficarei honrado com qualquer comentário: crítica ou sugestão. Os comentários poderão ser encaminhados para o email: paulo.buchner@ufv.br, com o assunto: Matlab
Desde já muito obrigado.
 
Matlab: Um curso introdutório 
 
1 
 
1. Introdução 
 
 Matlab é um software para modelagem matemática de sistemas, 
ao contrário de muitos outros pacotes vendidos, ele não gera arquivos 
executáveis, assim necessita que ele esteja instalado no computador para 
que se possa “rodar” o arquivo de código. 
Há dois ambientes básicos o Work Space (Área de trabalho) e o 
arquivo .m. No primeiro seu funcionamento é semelhante ao prompt ou 
linha de comando . O Windows passou a ser o sistema 
operacional somente com a versão 95. A seguir temos uma visão geral dos 
ambientes de programação do Matlab(Figura 1). 
Primeiramente a versão que se está utilizando nesta apostila é a 
7.8.0.347 R2009a, cujas licenças foram adquiridas pela UFV (Universidade 
Federal de Viçosa) em novembro de 2009. Há duas três versões: uma 
estudantil que é caracterizada pelo prompt de comando edu>, a versão 
profissional >> e a educacional, esta última para instituições de ensino. Na 
figura 1 pode-se ver várias janelas, cada qual com sua função, mas há 2 
delas que pode-se classificar como sendo as principais. Ou seja, as que 
apresentam o espaço de trabalho e o arquivo.m. 
O objetivo da produção deste material é servir como apoio a um 
curso de introdutório de Matlab. Com este o participante poderá rever 
alguns comandos iniciais e essências de pacote de programação que tem 
sido escolhido por várias instituições de ensino superior do Brasil e do 
exterior, além de muitas empresas o terem adotado como software de 
projetos. 
Um dos motivos dessa escolha é sem dúvida a facilidade e 
simplicidade de programação, além do leque de funções inclusas e 
validadas que ele possui. Tudo isso torna o Matlab uma poderosa 
ferramenta de trabalho, porque poupa tempo de programação. 
Espera-se que com esse texto e mais o curso, o participante ganhe 
know-how para se autodesenvolver e aprofunda na sua área específica, 
explorando cada vez mais este software e obtendo resultados com ele. 
 
Matlab: Um curso introdutório 
 
2 
 
 
 
Figura 1. Ambientes do MatLab. 
 
 As outras áreas 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). É sempre um bom 
procedimento que os arquivos que estejam sendo 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), nesta estarão sendo apresentadas as variáveis 
criadas, seu tamanho, tipo e conteúdo; 
• Command History, nesta são registrados todos os comandos entrado no 
Work Space; 
 
Área do 
arquivo.m 
Área de 
Trabalho 
 
Matlab: Um curso introdutório 
 
3 
 
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. Assim, talvez seja dispensável mais uma janela 
para esse propósito. 
 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. 
 
 Pode ser observado o prompt de comando, como já explicado, seu 
funcionamento é semelhante ao do promtp de comando do sistema 
. Inclusive vários comandos que lá se utilizava permanecem no 
Buffer 
Histórico 
de 
comandos 
Pasta atual 
 
Matlab: Um curso introdutório 
 
4 
Matlab. Vários deles estão listados abaixo e devem ser utilizado, pois são muito 
úteis durante a programação no Matlab. 
 
Tabela 1: Comandos essenciais via prompt. 
Comando Exemplo de aplicação 
clc 
 
-é semelhante ao cls, este comando limpa a tela 
do workspace. 
Clear -este comando limpa a variável escolhida. Ex: 
>>clear + variável. 
clear all -limpa todas as variáveis do buffer de memória. 
Dir -mostra os arquivos e pastas do diretório atual. 
Ex1: >>dir 
-acrescentando-se a chave *, pode-se fazer um 
filtro do que se pretende exibir. Ex2: >>dir *.exe, 
só mostra os arquivos com a extensão escolhida, 
no caso a exe. Ex3: >>dir m*.txt, mostra apenas 
os arquivos que iniciam com m e tem extensão 
txt. Ex4: >>dir r*.*t, exibe somente os arquivos 
que começam com r e tem um t no final de sua 
extensão. Ex5: >> dir *. , mostra epenas as 
pastas que estão neste dirertório. 
What -este comendo é similar ao dir, apenas que ele 
mostra apenas os arquivos com extensão m. Ex: 
>>what 
Who -mostra as variáveis que estão no buffer. Este 
comando dispensa a presença da janela, pois 
podemos consultar através do teclado, quando 
necessário, as variáveis criadas. 
Whos -exibe as variáveis criadas e sua dimensão. Ex: 
>>whos 
Clear vars - funciona como clear. 
Rmdir -remove um diretório ou pasta, desde que ele 
esteja vazio. Ex: rmdir diretório. Se o diretório 
 
Matlab: Um curso introdutório 
 
5 
“diretório” existir e estiver vazio. 
Mkdir -cria uma pasta diretamente do prompt de 
comando. 
Cd -é um comando que possibilita mover-se de uma 
pasta para outra diretamente do prompt. Ex1: 
>>cd work, entra na pasta work. Ex2: >>cd .. , sai 
da pasta work. 
Type -este comando serve para olhar o conteúdo de 
um arquivo, desde que ele seja do tipo doc, txt ou 
m. Ou seja, desde que ele seja um texto. Ex: type 
arquivo. 
Which -é o comando que exibe aonde o arquivo de uma 
função está. Ex: >>which type 
built-in 
(C:\MATLAB\R2009a\toolbox\matlab\general\type) 
 
Abaixo temos os operadores aritméticos essenciais. Além dos sinais de 
+(soma), subtração (-), multiplicação (*), divisão (/ ou \) e potencia (^) esses 
ainda são associados, quando operando com matrizes, ao ponto antes da 
operação. Indicando que o produto ou a divisão ocorre membro a membro. A 
figura 1 abaixo resume esses operadores, em seguida alguns exemplos para 
extinguir qualquer dúvida ainda remanescente. 
 
 
Matlab: Um curso introdutório 
 
6 
 
Figura 1. Operadores aritméticos. 
 
 Quando os operadores são acrescidos de um ponto, então pode 
executar essas operações com vetores e matrizes. Perceba, porém, que o 
ponto vai antes do operador. Exemplos são também apresentados na tabela 2. 
O sinal apóstrofo (‘) é muito utilizado, ao contrário da aspas (“) utilizada em 
programas como o C e C++. 
 
2. Comandos de mensagens e entradas 
 
 Apresentamos agora alguns comandos básicos para mensagens ao 
usuário. 
 
disp(‘ mensagem a enviar para tela’) a resposta será: 
mensagem a enviar para tela 
 
 
Matlab: Um curso introdutório 
 
7 
sprintf(‘ mensagema enviar par tela’) essa porém além de exibir mensagem na 
tela atribui a string a variável ans. Caso deseje, poderá executar esse comando 
da seguinte forma: 
 
mensagem= sprintf(‘ mensagema enviar par tela’) mostrará na tela e atribuirá a 
string para variável mensagem. 
 
Que poderá se usada dentro de qualquer outra função que demande de uma 
string, por exemplo o próprio comando disp. disp(mensagem), figura 3. 
 
 
Figura 3. Spacework, comandos de mensagens ao usuário. 
 
 
 
 
 
 
 
Mensagem enviada 
Mensagem exibida e que 
está no conteúdo da 
variável ans 
Mensagem exibida e que 
está no conteúdo da 
variável mensagem 
Mensagemexibida usando o 
comando disp e a variável 
mensagem. 
 
Matlab: Um curso introdutório 
 
8 
 
 
 
 
 
 
Tabela 2: Exemplos com os operadores aritméticos. 
Soma Subtração 
 
>>1+2 
Ans = 
 3 
 
>>3-2 
Ans= 
 1 
Multiplicação Divisão 
 
>>2*3 
Ans= 
 6 
 
>>3/2 
Ans 
 1.5 
>>2\3 
Ans 
 1.5 
Potência Expoente 
 
>>2^3 
Ans 
 8 
 
>>exp(1) 
Ans 
 2.7183 
 
Operações com os arrays: a=[1 2 3] e b=[4 5 6] 
Soma Subtração 
 
>>a+b 
Ans 
 5 7 9 
 
>>a-b 
Ans 
 -3 -3 -3 
Multiplicação Divisão 
 
Matlab: Um curso introdutório 
 
9 
 
>>a.*b 
Ans 
 4 10 18 
 
>>a./b ou b.\a 
Ans 
 0.2500 0.4000 0.5000 
Potência Expoente 
 
>>a.^2 
Ans 
 1 4 9 
 
>>exp(a) 
Ans 
 2.7183 7.3891 20.0855 
 
 
 Diferença de capitalização, o Matlab faz diferença entre maiúsculas e 
minúsculas, portanto deve-se ter cuidado no momento de criar uma variável. 
 A tabela 3 são apresentado alguns comando de saída para tela e de 
entra com exemplos. Alguns deles, no caso dos comandos de entrada, são 
especiais para dados de arquivos e variáveis do sistema. 
 
Tabela 3: Comandos de entrada e saída para tela. 
disp Input 
 
>>disp (‘Mensagem’) 
Mensagem 
 
 
>>input(‘Entre com o dado:’) 
Entre com o dado: 
sprintf sscanf 
 
>>sprintf(‘Essa é a mensagem:’) 
Ans= 
 Essa é a mensagem: 
 
>>A=’2.71 3.14’ 
A= 
2.71 3.14 
>>sscanf(A,’%f’) 
Ans= 
 2.7100 
 3.1400 
fprintf fscanf 
 
Matlab: Um curso introdutório 
 
10 
 
>>fprintf(‘Essa é a mensagem:\n’) 
Essa é a mensagem: 
>> 
 
>>fscanf(fid,’%f’) 
Obs: lê dados de uma arquivo que 
tenha sido aberto pelo fluxo fid. 
 
Sprintf 
 
>>b=[2.7100 3.1415] 
B= 
 2.7100 3.1415 
>>sprintf(‘Os valores são: %3.2f e 
%3.2f\n’,B(1),B(2)) 
ans= 
Os valores são: 2.71 e 3.14 
 
 
 
 
3. Criando uma variável 
 
 Para criar uma variável no Matlab é muito fácil, bastando para isso 
atribuir um valor, um caracter ou uma string e pronto, ela já existe no ambiente 
do Matlab. 
 
Exemplo: >>a=1, ou b=’r’ ou c=’Programa Matlab’ 
 
 Executando esses comandos no prompt de comando já teremos criado 
três variáveis, a, b e c. Respectivamente, uma contendo um valor, um caracter 
e uma string. Aproveita-se a oportunidade para apresentar o sinal de = como a 
forma para atribuir “valores” e conteúdos às variáveis. 
 A variável criada fica na memória do Mabtlab e é assim podem ser 
usadas em várias partes do programa. Portanto um cuidado é necessário para 
não haver confusão com elas. 
 
Matlab: Um curso introdutório 
 
11 
 
4. Operadores relacionais 
 
 Assim como outras linguagens de programação, há uma série de 
codificações para elaborar o funcionamento lógico do programa em 
desenvolvimento. A figura 4 mostra alguns operadores relacionais que pode ser 
usados. O primeiro deles é o maio que, 
maior ou igual, == igual e não igual ou diferente ~=. Deve-se ter cuidado para 
não confundir == com =, pois são bem distintos um do outro, o primeiro serve 
para comparar e o segundo para atribuir. 
 
Figura 4. Operadores relacionais. 
 
 Em seguida estão algumas estruturas lógicas, também utilizadas em 
muitas outras linguagens de programação, que no Matlab se mostra muito mais 
simples por dispensar uma série de sinais e simbologia. 
 A primeira dessas estruturas é a IF-elseif-else como mostrado na figura 
 
 
Figura 4. Estrutura lógica IF-elseif-els. 
 
 
Matlab: Um curso introdutório 
 
12 
 Essa estrutura poderá se usada na sua forma mais simples que é o 
usando o comando if + a expressão condicionante e o comando, assim como 
todos em bloco como esse, devem terminar com a palavra end. A forma 
completa desta estrutura apresenta uma primeira verificação, a qual se não for 
satisfeita passa par a segunda verificação elseif, caso não seja satisfeita segue 
para a última que será executada no caso de nenhuma das anteriores forem 
satisfeitas. 
 
 Outra estrutura é o case, nesta é necessário a entrada verdadeira para 
que ela seja executada. Nesta várias condições podem ser relacionadas e 
executadas conforme a entrada. São, neste caso, os case’s. A estrutura 
executa um determinado expressão casa nenhuma das condições, ou seja dos 
case’s, não seja satisfeita. Muito utilizada para enviar uma mensagem de erro 
para o usuário. Novamente, a estrutura é finalizada com a palavra end. 
 
 
Figura 5. Estrutura switch. 
 
 Na próxima figura 6 é apresentada a estrutura for, onde uma expressão 
é condicionada para incrementar as operações, equações e etc. Nesta 
estrutura assim como as outras é possível operarem em cascata, ou seja, 
estruturas aninhadas. 
 
 
Matlab: Um curso introdutório 
 
13 
 
Figura 6. Estrutura for. 
 Outra estrutura muito comum e a while (figura 7), nela enquanto a 
expressão lógica é satisfeita o laço continua executando as operações dentro 
dela até que o estado dela seja alterado para sair do laço. 
 
Figura 7. Estrutura while. 
 O laço while se repete enquanto o valor da variável eps+1 for menor que 
1. Há a expressão que faz com que o valor da eps vá diminuindo até que a 
condição não seja mais satisfeita. 
 
 
 
 
 
 
5. Interface gráfica 
 
 Embora haja uma linguagem mais apropriada para fazer a interface 
gráfica com o usuário chamada de GUI, o Matlab disponibiliza algumas funções 
muito interessantes que permite uma aplicação direta e muito prática de 
algumas dessas interfaces. Com elas, certamente o leitor se sentirá muito 
melhor, pois poderá proporcionar programas com uma interface muito próxima 
ao que o sistema Windows executa. Assim seguem algumas dessas funções e 
a explanação de como elas funcionam. 
 
 
Matlab: Um curso introdutório 
 
14 
5.1. Inpudlg 
 
 Essa função abre uma caixa de mensagem onde o usuário poderá 
atribuir valores a suas variáveis. Ela possibilita que existam valores “default”. A 
sua estrutura segue conforme a figura 7. 
 
 
 
Figura 7. Comando inputdlg. 
 
 A função inputdlg funciona como a função input, porém há 
apenas alguns parâmetros a mais que devem ser observados e 
preparados. Primeiramente haverá necessidade de mensagens 
dizendo em qual caixa colocar uma informação específica, no 
exemplo as mensagens estão armazenadas na variável prompt. 
Nesta o texto de cada caixa foi inserido, como: Entre com a 
dimensão da matriz(Entre matrix size) e entre com o nome do mapa 
de cores (Enter colormap name). Também há a necessidade de dar 
um título para essa caixa de comando, nocaso a variável usada foi 
dlg_title, para qual foi atribuído nesse exemplo Entrada para 
funções de picos (Input for peaks function). Outra variável, a def, 
foram atribuídos os valores default. E finalmente a num_lines ou 
 
Matlab: Um curso introdutório 
 
15 
número de linhas,foi atribuído o valor de 1 linha. Cada caixa pode 
possuir várias linhas, normalmente uma só basta. 
 É importante observar que os valores que retornam após a 
entrada com esse comando são strings e, portanto, devem ser 
convertido para outro formado, exemplo se for números de entrada. 
 Para fazer essa conversão por exemplo de caracteres para 
número use o seguinte comando: 
 
str2num(variável string) 
 
5.2. msgbox 
 
 Há a possibilidade de enviar uma mensagem para o usuário, 
Para isso pode-se utilizar a função msgbox. Cada caixa de 
mensagem ainda pode ter um ícone que destaca que tipo de 
mensagem o programa está enviando, por exemplo: erro, alerta e 
ajuda. 
 Observe a sintaxe dessa função, primeiro vai a mensagem 
que se quer mandar para o usuário, em seguida o título da caixa de 
mensagem e depois o tipo de ícone (figura 8). 
 
 
Matlab: Um curso introdutório 
 
16Figura 8. Função msgbox. 
 
Um exemplo desta função segue: 
 
>>msgbox(‘Deseja continuar?’,’Rotina de entrada de dados’,’warn’) 
 
 
Figura 9.Exemplo do comando msgbox. 
 
 Para outros tipos de avisos, como erro usa ‘error’ e ‘help’. 
 
5.3. Questdlg 
 
 A próxima função é a caixa de pergunta, onde alguma 
situações são questionadas e o usuário deverá clicar no botão para 
escolher entre elas. Ajusta-se uma destas escolhas como a default. 
Para configurar a função é necessário definir a pergunta a ser 
mostrada para o usuário, o título da caixa de mensagem, as 
opções, no máximo 4 e a opção default. A figura 10 mostra a 
sintaxe da estrutura desta função. 
 
Matlab: Um curso introdutório 
 
17 
 
Figura 10. Estrutura da função questdlg. 
 
A figura 11 mostra um exemplo dessa estrutura. 
 
Figura 11. Exemplo da estrutura da função questdlg. 
 
O resultado da estrurua da figura 11 é apresentado na figura 
12 a seguir. 
 
 
Matlab: Um curso introdutório 
 
18 
 
Figura 12. Resultado da função questdlg. 
 Na próxima figura (figura 13) é apresentado outro exemplo de 
aplicação deste comando. 
 
 
Figura 13. Outro exemplo do comando questdlg. 
 
 
 
 
Matlab: Um curso introdutório 
 
19 
6. Gráficos 
 Nesse tópico são apresentados alguns tipos de 
gráficos. Eles poderão ser implementados em qualquer aplicação, 
no entanto deve-se ter cuidado para não perder o foco e 
principalmente a utilidade dos mesmos. Caindo assim, numa 
situação de poluição visual e o propósito de se utilizar gráficos seja 
perdido. 
6.1. Plot 
 
 É sem dúvida a função mais simples e sua 
implementação segue o mesmo grau de dificuldade. O comando 
plot é então ilustrado abaixo na figura 14. 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
 
Figura 14. Gráfico da função seno usando plot. 
 O comando plot(x,y), na sua mais simples usa os 
argumento x, para o eixo das abscissas e o y para o eixo das 
ordenadas. Acrescentando-se outros parâmetros podemos 
incrementar e melhor representar dados através dos gráficos 
criados. Em seguida, na figura 15, é mostrado as variações para 
função plot. 
 
Matlab: Um curso introdutório 
 
20 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
 
Figura 15. Função plot(x,y,’b+’,x,-y,’or’). 
 
 A função plot(x,y,’b+’,x,y,’or’) constrói um gráfico com 
duas funções y e –y, ambas em função de x. No entanto a primeira 
curva é feita com o símbolo + e na cor azul, o argumento entendido 
pela função é ‘b+’. Na segunda curva, o argumento passado para 
função é ‘or’ e assim “plota” a curva com o símbolo ‘o’ e na cor 
vermelha. Assim outras curvas poderão ser colocadas no mesmo 
gráfico com simbologias e cores diferentes para destacá-las umas 
das outras. É possível ainda alterar a espessura da linha. 
 Podem-se incluir os nomes dos eixos e dar um título 
para o gráfico. Para isso devem-se adicionar na seqüência do 
comando plot as seguintes linhas de comando: 
• xlabel(‘Nome do eixo X’) → coloca o nome do eixo X, 
novamente os caracteres entre os sinais de apóstrofos formam uma 
string e por isso vale qualquer tipo de caracter. 
• ylabel(‘Nome do eixo Y’) → coloca o nome do eixo Y. 
• zlabe(‘Nome do eixo Z’) → coloca o nome do eixo Z. No caso 
do gráfico ser em 3D. 
 
Matlab: Um curso introdutório 
 
21 
• title(‘Nome do título do gráfico’)→ acrescenta o nome do 
gráfico. 
Exemplo: 
 plot(x,y,’b+’,x,-y,’go’) 
 xlabel(‘Nome do eixo X’) 
 ylabel(‘Nome do eixo Y’) 
 title(‘Nome do título do gráfico’) 
Resultado é apresentado na figura 16. 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Nome do título do gráfico
Nome do eixo X
N
om
e 
do
 e
ix
o 
Y
 
Figura 16. Gráfico completo, título, eixo x, eixo y. 
 Uma função interessante que podemos inserir agora é 
a ginput, ela permite que o usuário aponte um ou mais pontos no 
gráfico aberto e retorna as coordenadas do ponto ou pontos 
selecionados. 
Exemplo: 
N=1; %é uma variável que determinará o número de pontos 
desejados. 
[a b]=ginput(N) %é a função ginput que pegará N pontos no gráfico 
 
Matlab: Um curso introdutório 
 
22 
 aberto. 
 As variáveis a e b tomarão os valores das 
coordenadas dos pontos selecionados. Na figura 17 é ilustrada a 
forma como a figura do gráfico ficar, mostrando o cursor que aguara 
as entradas com o mouse. 
 
Figura 17. Cursos do comando ginput. 
 Este cursor ficará aberto até que a entrada feita com o 
mouse seja realizada, isso acontecerá o número de vezes que for 
inserido no comando ginput. 
 
 
Matlab: Um curso introdutório 
 
23 
Figura 18. Dois pontos selecionados para construção da reta. 
 A figura mostra os dois pontos, a partir destes será 
desenhada uma reta interligando os mesmos. Na figura 19, também 
mais uma função é introduzida, a text(a(1),b(1),’Ponto 1’), onde a e 
b são tem os valores das coordenadas tomadas pela função ginput 
e é colocado o texto Ponto 1 e Ponto 2 na extremidade da reta, 
conforme a figura 19. 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Nome do título do gráfico
Nome do eixo X
N
om
e 
do
 e
ix
o 
Y
Ponto 1
Ponto 2
 
Figura 19. Funções line e text. 
 
 Os argumentos da função line são as coordenadas 
dos extremos da linha. Da função text é as coordenadas mais uma 
string, no caso Ponto 1 e depois o Ponto 2. 
Exemplo: 
[a b]=ginput(2) %a função que toma 2 pontos do gráfico 
line(a,b) %desenha uma linha com as coordenadas 
 armazenadas em a e b. 
text(a(1),b(1),’Ponto 1) %Coloca uma string na área do gráfico no 
 ponto 1. 
text(a(2),b(2),’Ponto 2) %Coloca uma string na área do gráfico no 
 ponto 2. 
 
Matlab: Um curso introdutório 
 
24 
 A figura 18 possui o resultado desse exemplo. Com 
esses novos comandos já se pode operar os gráficos e manipula-
los com bastante eficiência. Para utilizá-los em um documento 
word, basta entrar no menu edit e copiar a figura. O gráfico será 
enviado para área de transferência do windows e depois poderá ser 
colado. Esse artifício foi largamente utilizado para produzir esse 
texto. 
6.2. Subplot 
 Muitas vezes é necessário colocar as funções, devido 
a sua natureza, em gráficos distintos. Isso é possível no Matlab 
utilizando a função subplot. As funções utilizadas no exemplo 
anterior serão aqui novamente reutilizadas para exemplificar esse 
comando. 
 A seguir a figura 20 exibe a função subplot com 4 
gráficos na mesma figura. É possível colocar mais, porém, por 
motivos de poluição visual e para que os resultados dos gráficos 
fiquem legíveis, é importante manter esse número em torno de 6×6 
ou no máximo 8×8. 
 Esse comando tem como argumentos o tamanho da 
matriz aonde se distribuirão os gráficos na figura e as suas 
respectivas posições. 
 
Matlab: Um curso introdutório 
 
25 
0 0.5 1
-1
-0.5
0
0.5
1
0 0.5 1
-1
-0.5
0
0.5
1
0 0.5 1
-1
-0.5
0
0.5
1
0 0.5 1
-1
-0.5
0
0.5
1
 
Figura 20. Função subplo 2×2. 
Exemplo: 
Subplot(2,2,1),plot(x,-,’r—‘) %posição 1, linha tracejada 
 vermelha. 
Subplot(2,2,2),plot(x,y,’gd’) %posição 2, linhadiamante, 
 verde. 
Subplot(2,2,3),plot(x,y,’yp’) %posição 3, linha pentagrama 
 amarela 
Subplot(2,2,4),plot(x,-y,’g-.’) %posição 4, linha traço ponto, 
 azul. 
 Uma tabela 4 foi construída para ilustrar a questão das 
posições. Perceba que não importa o tamanho da matriz, a 
numeração segue conforme a linha vermelha da tabela indica. 
 
 
Tabela 4. Ilustração do posicionamento dos gráficos pelo comando 
subplo. 
1 
2 3 4 5 6 
 
Matlab: Um curso introdutório 
 
26 
7 8 9 10 11 12 
13 14 15 16 17 18 
19 20 21 22 23 24 
25 26 27 28 29 30 
31 32 33 34 35 36 
 
 
 
7. Programa Exercício 
 
 Neste tópico será acompanharemos um programa queutilizar vários dos comandos vistos até o momento. O projeto consta 
de trabalhar com uma equação de 2º.grau, mas que muito bem 
poderia ser qualquer outro tipo de modelo matemático, mostrar os 
resultados em um gráfico. Neste, pode-se renomear os eixos e o 
título, possibilita que salvemos os resultados em um arquivo com 
um nome escolhido e depois o recuperamos. Note que o arquivo 
aqui é do tipo texto, ou seja, podemos salvá-lo com ou sem exteção 
txt, doc, m ou qualquer outra desse gênero. 
 Além dos recursos gráficos, utilizou-se uma estratégia 
de programação bastante interessante, na qual foi o script da 
codificação foi construida ao redor de um programa principal 
 
Matlab: Um curso introdutório 
 
27 
chamado main.m. Outros arquivos então foram criados para 
quebrado, ou melhor, distribuido nos arquivos: arquivo.m, abre.m, 
dadosinf.m, grafi.m e solucao.m. 
 É preciso observar que os arquivos criados deverão 
estar no mesmo diretório ou pasta do caminho corrente do Matlab. 
Pois, se isso não acontecer, o Matlab não reconecerá e enviará 
uma mensagem como mostrada na figura 21. 
 
Fiura 21. Mensagem de erro, diretório diferente do atual. 
 
 Portanto é necessário direcionar o diretório aonde 
ficarão os arquivos .m como corrente para que o Matlab consiga 
identificá-los. 
 Em seguida, na figura 22, o primeiro menu do nosso 
programa. Nele poderemos escolher a forma de entrada dos dados 
através do comando Teclado, apertando esse botão pode-se entrar 
digitando-se os valores. 
 
Figura 22. Menu principal do main. 
 
 
Matlab: Um curso introdutório 
 
28 
 Para o exemplo em desenvolvimento, os dados são os 
coeficientes da equação, a figura 23 mostra a janela aberta para 
introdução dos dados via teclado. 
 
 
Figura 23. Janela de entrada de dados via teclado. 
 Nessa janela já aparecem alguns valores predefinidos, 
os chamados valores default, que naturalmente poderão ser aceitos 
ou pode-se digitar novos. Em seguida, pressionar a tecla OK. 
 Quando o botão Banco, do menu principal é apertado, 
dados de um arquivo chamado dadosinf.m são atribuídos aos 
coeficientes. Mais uma vez, deve-se entender aqui que estes dados 
poderiam ser de qualquer outra variável, constantes ou qualquer 
outra coisa que se desejasse. 
 O botão Plotar apresenta outro menu (figura 24) onde 
se pede que o usuário aceite os nomes já definidos para os eixos e 
o próprio gráfico ou os renomeie. 
 
Fiura 24. Opção de renomear o nome dos eixos e do gráfico. 
 Ao pressionarmos o botão Editar nome, o respectivo 
menu se abre, conforme fiura 25. 
 
Matlab: Um curso introdutório 
 
29 
 
Figura 25. Janela para entrada de nomes do gráfico. 
 Caso não haja interesse em renomear essas 
informações, então pode-se pressionar o botão Não editar, então 
os nomes predefinidos serão usados. No exemplo dados de -5 até 5 
foram usados para criar os dados, o passo foi de 0,001. O gráfico é 
mostrado na figura 27, os respectivos dados criados estão na figura 
26. 
 
 
Figura 26. Dados gerados para a equação. 
 Como os coeficientes default foram aceitos os dados 
gerados estão representados no gráfico na figura 27. 
 
Matlab: Um curso introdutório 
 
30 
 
Figura 27. Gráfico da equação de 2º.grau. 
 Pode-se salvar os dados gerado em um arquivo, 
pressionando-se o botão Salvar. Em seguida o prompt pede para 
que o usuário insira o nome do arquivo, conforme a figura 28. O tipo 
de arquivos são do formato texto. Por isso, pode-se introduzir no 
nome as extensões txt, m, doc e outra qualquer tipo texto. 
 
 
Figura 28. Prompt solicitando o nome para o arquivo. 
 Também é possível abrir um arquivo de dados, 
pressionando o botão Abrir. Aqui é faz-se necessário tecer alguns 
comentários. 
 O leitor poderá automatizar as operações de 
salvamento e criação de nomes elaborando uma rotina para isso. 
Isso facilitará muito na criação e codificação desses arquivos para 
um acompanhamento e controle. Por exemplo, numa situação onde 
criou-se um modelo matemático que está trabalhando com dados 
experimentais, é possível relacionar a codificação criada para cada 
 
Matlab: Um curso introdutório 
 
31 
experimento com o arquivo criado. Facilitando sua identificação e 
mais adiante criar uma rotina de codificação de programação que 
faça a comparação entre os resultados possibilitando uma 
comparação da evolução dos mesmos. Uma codificação de 
arquivos possível de ser implementada automatizada seria: exp_1-
05202010.txt, ou exp_A-05202010.001 que significariam 
experiência 1 do dia 20/05/2010, no segundo experiência A do dia 
20/05/2010 número 001 e assim por diante. Fica a critério da 
liberdade e criatividade do leitor criar essa codificação. 
 
Figura 29. Prompt para abertura do arquivo. 
 
8. Código fonte: 
 
 Neste tópico é apresentado o código de programação 
propriamente dito. Nele estão os comentário em cada linha. Mais 
comentário que se fizerem necessário estarão entre linhas. 
 
7.1. Arquivo main.m: 
 
 
1. %Arquivo principal do meu programa 
2. %-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 
3. 
4. clc %comando limpa a tela 
5. clear all %comando limpa a memória 
6. 
7. aux1='s'; %cria a variável aux1 e já atribui um caracter ‘s’ 
 
Matlab: Um curso introdutório 
 
32 
8. 
9. while aux1=='s' %faz a verificação para entrar no laço while que será 
executado enquanto essa variável não for alterada. 
10. clc 
11. aux=menu('Escolha sua opçao',... 
12. 'Teclado','Banco Dados','Plotar','Visualizar',... 
13. 'Salvar','Sair','Abrir'); %cria a janela contendo o menu principal, 
observe que o primeiro strin é a pergunta feia ao usuário para tomar a sua 
decisão, em seguida o nome dos botões: Teclado, Banco Dados, Plotar, 
Visualizar, Salvar, Sair e Abrir. Cada botão está numa posição, isto é 1, 2, 3, 4, 
5, 6 e 7 respectivamente. 
14. 
15. switch aux %iniciar o laço switch que entra com a opção feita no menu. O 
valor de retorno é um número, portanto a variável aux tem um valor inteiro. 
16. case 1 % Entrada pelo teclado 
17. 
18. prompt={'a:','b:','c:'}; 
19. def={'1','4','20'}; 
20. dlgTitulo='Entre com os parametros:'; 
21. numLine=1; 
22. resp=inputdlg(prompt,dlgTitulo,numLine,def); %cria o menu que 
pede para o usuário entrar com dados na janela, figura 16. Para compor essa 
função inputdl é necessário o título de cada campo de entrada, especificar qual 
será o valor default, no caso foram os número 1, 4 e 20, mas poderia ser vazio e 
assim ‘’, ‘’ e ‘’. Em seguida declara a string para o título, o número de linhas, 
normalmente 1. Esse comando retorna conteúdos de células, que são strings. 
Por isso devem ser convertidos para números, se esse for o caso. 
23. a=str2num(cell2mat(resp(1))); % o comando cell2mat, converte a célula 
para string, em seguida usa-se outro comando para converter string em número, 
é o str2num. Finalmente tem-se número nas variáveis ‘a’. Repete-se este 
comando para as outras variáveis como segue. 
24. b=str2num(cell2mat(resp(2))); 
25. c=str2num(cell2mat(resp(3))); 
26. 
27. solucao 
28. 
29. case 2 % Abre os dados do arquivo 
30. disp('Entrou aqui de alegre!!!') 
31. if or(exist('a'),exist('b'))==0 
32. dadosinf %chama o arquivo dadosinf.m 
33. else 
34. aux=1; 
35. end 
36. 
37. case 3 %Plota o grafico 
38. 
39. if or(exist('a'),exist('b'))~=0 
 
Matlab: Um curso introdutório 
 
33 
40. solução %chama o arquivo solucao.m 
41. grafi %chama o arquivo grafi.m 
42. else 
43. aux=1; 
44. msgbox('Declarar variavel','Aviso') %comando que coloca uma caixa de 
mensagem na tela. Necessita de uma string que dá a mensagem para o usuário, 
e o tipo doícone que irá aparecer. Botões ok são exibidos para o usuário 
pressionar. 
45. end 
46. 
47. 
48. case 4 %Ver o conteudo do arquivo dadostxt.txt 
49. 
50. fid=fopen('c:/matlabR12/work/dadostxt.txt','r') %comando para 
abertura ou criação de arquivo, aqui inclusive é colocado o caminho aonde este 
arquivo, no caso dadostxt.txt, está. O parâmetro ‘r’, significa que será feita a 
verificação somente de leitura. 
51. if fid=0 
7. g=fscanf(fid3,'%f') 
8. fprintf('Dados do arquivo ',arqfile); 
9. pause 
10. fclose(fid3) 
11. else 
12. msgbox('Nao existe o arquivo','Aviso') 
13. end 
 
7.3. Arquivo arquivo.m: 
 
1. %Arquivo que salva informaçoes 
2. %no disco 
3. clc 
4. arqfile=input('Entre com o nome do arquivo:','s'); 
5. caminho=sprintf('C:/matlabR12/work/%s',arqfile); 
6. fid1=fopen(caminho,'W+'); 
7. fprintf(fid1,'%f %3.2f \n',t,y) 
8. fclose(fid1) 
9. clc 
10. disp('Visualizacao do arquivo:') 
11. y' 
 
Arquivo dadosinf.m: 
 
1. %Arquivo que armazena dados 
2. %funcionara como banco de dados 
 
Matlab: Um curso introdutório 
 
35 
3. %de informacoes permanentes 
4. a=1; 
5. b=2; 
6. c=8; 
7. clc 
8. fprintf('Os coeficientes a=%d b=%d e c=%d',a,b,c) 
9. pause 
 
7.4. Aquivo grafi.m 
 
1. %Arquivo para impressao de graficos 
2. %configuracoes de graficos 
3. 
4. clc 
5. aux3=menu('Escolha sua opçao',... 
6. 'Editar nome:','Nao editar'); 
7. 
8. 
9. if aux3==1 
10. 
11. prompt3={'Eixo X:','Eixo Y:','Titulo:'}; 
12. def3={'','',''}; 
13. dlgTitulo3='Entre com os parametros:'; 
14. numLine3=1; 
15. resp3=inputdlg(prompt3,dlgTitulo3,numLine3,def3); 
16. X=cell2mat(resp3(1)); 
17. Y=cell2mat(resp3(2)); 
18. T=cell2mat(resp3(3)); 
19. 
20. 
21. 
22. else 
23. X='Temp'; 
24. Y='Amplitude'; 
25. T='Equacao'; 
26. end 
27. 
28. plot(t,y) 
29. title(T) 
30. xlabel(X) 
31. ylabel(Y) 
32. grid 
33. pause 
 
7.5. Arquivo solucacao.m 
 
1. %Arquivo com a solucao do problema 
2. t=-5:.001:5; 
 
Matlab: Um curso introdutório 
 
36 
3. y=a*t.^2-b*t+c 
 
Matlab: Um curso introdutório 
 
37 
9. 
8. Conclusão 
 
 Finalizamos esta apostila com o sentimento de ter 
colocado o conteúdo que achamos ser essencial para um curso 
introdutório. Como as turmas são sempre muito heterogêneas é 
bastante complicado atender nas especificidades. É notória a 
necessidade de um curso avançado para este fim. Se o conteúdo 
aqui apresentado tiver sido assimilado pelo leitor, e ele não deixá-lo 
cair no esquecimento, ele terá grandes chances de sucesso no uso 
deste software maravilhoso. 
 O leitor facilmente poderá se tornar uma autodidata e 
pode aprofundar-se cada vez mais, explorando os comandos e as 
funções aplicadas na sua área de especialização. Por isso aproveito 
essa oportunidade de colocar a disposição as formas de contado 
para que possa enviar dúvidas, críticas e sugestões, todas serão 
muito bem vindas e reconhecidas(email:paulo.buchner@ufv.br). 
 É evidente a necessidade do conhecimento da língua 
inglesa, pelo menos para leitura, pois as ajudas são todas nesse 
idioma. Mas, acredito que nos tempos em que vivemos isso se 
torne mais um incentivo para estudá-la. 
 O comando help é seu principal aliado, com ele você 
conseguirá explorar ainda mais o Matlab. 
 Desde já o leito é convidado a participar do próximo 
curso a ser lançado e divulgado que envolve um pacote do Matlab, 
denominado Simulink. 
 Com certeza, nas próximas versões desta apostilas 
eventuais erros e melhores deverão estar presentes, as quais só 
serão possíveis pelo aprendizado que fazemos a cada vez que 
 
Matlab: Um curso introdutório 
 
38 
lecionamos esse curso introdutório. Aproveito para agradecer a 
participação, a paciência e, sem dúvida nenhuma, a colaboração de 
todos, participantes e organizadores. 
 
 
 
9. Referências bibliográficas 
 
COCIAN, Luis Fernando Espinosa. Manual da linguagem C.1ª. 
Edição : Editora da Ulbra, 2004. 
HELSELMAN, D; LITTLEFILD, B. MATLAB – Versão do estudante 
– guia do usuário. São Paulo: Makron Books, 1997. 308p.

Mais conteúdos dessa disciplina