INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste...

16
INTRODUÇÃO À PROGRAMAÇÃO NO MATLAB Arquivos .m Como visto, os comando do MatLab podem ser digitados na Janela de Comando cada linha é então, processada imediatamente. Porém, podemos definir e executar uma sequência de comandos ( programa ). Neste caso, podemos criar arquivos de script chamados arquivos “.m”. Um arquivo “.m” pode conter qualquer comando do MatLab ou função definida pelo usuário. Obs.: em um arquivo “.m” todas as variáveis são globais.

Transcript of INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste...

Page 1: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

INTRODUÇÃO  À  PROGRAMAÇÃO  NO  MATLAB  

Arquivos  .m  

Como  visto,  os  comando  do  MatLab  podem  ser  digitados  na   Janela   de   Comando     è cada   linha   é   então,  processada  imediatamente.  

Porém,   podemos   definir   e   executar   uma   sequência   de  comandos   (programa).   Neste   caso,   podemos   criar  arquivos  de  script  chamados  arquivos  “.m”.  

Um   arquivo   “.m”   pode   conter   qualquer   comando   do  MatLab  ou  função  definida  pelo  usuário.  

Obs.:  em  um  arquivo  “.m”  todas  as  variáveis  são  globais.  

Page 2: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Algoritmos  

Antes   de   escrever   qualquer   programa   de  computador,   é   usual   primeiro,   descrever   os   passos  que  serão  necessários  ! Algoritmo  Exemplo:  calcular  a  área  de  um  círculo.  1º   fornecer   a   entrada:   o   raio   do   círculo   (! teclado)  2º  calcular  o  resultado:  a  área  (! como  calcular)  3º   mostrar   o   resultado:   a   área   calculada   (! monitor)    Passo  2:    area  =    π  *  raio2  

Page 3: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos:

1   • Fornecer  a(s)  entradas  

2   • Calcular  o(s)  resultados  

3   • Mostrar  o(s)  resultados  

Depois que o algoritmo está escrito e “refinado”, a solução do problema pode ser escrita (implementada) em uma linguagem de programação, no caso, o MatLab.

Page 4: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Scripts – MatLab Os arquivos scripts ou M-files são interpretados (ao invés de compilados). Script: sequência de instruções do MatLab ! M-file Atenção ! Current Folder !! Selecionar o diretório onde os arquivos M-files são salvos.

Page 5: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Script pode então, ser executado ou “rodado”, digitando o nome do arquivo (sem o .m) >> teste <enter>

Criando um Script

No menu: File ! New Script Nova janela Editor

"

File ! Save (nome .m)

Page 6: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Exemplo: calcular a área de um círculo. File ! New Script Digitar:

raio = 5 area = pi * (raio ^2)

Salvar: script1.m

Page 7: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Para rodar: na janela de Comandos, digitar o nome do arquivo (sem extensão): >> script1 <enter>

Caso você faça alguma alteração no arquivo, lembre-se de salvá-lo novamente antes de rodar!!

Page 8: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Documentação É muito importante que todos os scripts sejam bem documentados. Comentários: No MatLab, um comentário é representado pelo sinal de % Comentários são ignorados quando o script é executado. Ex.: % comentário de uma linha Bloco de comentários: %{

linha 1 linha 2

%}

Page 9: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

ENTRADA E SAÍDA DE DADOS Função de Entrada

Ex.: >> x1 = input (‘Digite um número: ‘); Digite um número: 1.37 x1 =

1.3700

variável  =  input  (‘  expressão  ’);  

Page 10: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

>>  x2  =  input  (‘Digite  um  vetor:  ‘);  Digite  um  vetor:  [1  2  3  4  5]  x2  =      1      2    3    4    5  

 

>>  x3  =  input  (‘Digite  uma  matriz:  ‘);  Digite  uma  matriz:  [1  2  3;  4  5  6;  7  8  9;  10  11  12]  x3  =                  1          2          3                  4          5          6                  7          8          9            10        11        12    

Page 11: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Função  de  Entrada  -­‐  Caracteres        

>>  texto  =  input  (‘Digite  um  texto:  ‘,  ‘s’);  Digite  um  texto:  teste  de  texto  texto  =  

 teste  de  texto    

Cuidado!!!  >>  x4  =  input  (‘Digite  um  dado:  ‘,  ‘s’);  Digite  um  dado:  1.38    

Armazenará  a  cadeia  de  caracteres  (string)  (‘1.38’)  na  variável  x4.    

       

variável  =  input  (‘  expressão  ’,  ‘s’);  

Page 12: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Declaração de saída: disp e fprintf

disp: esta função é usada para mostrar o resultado de uma expressão ou string sem atribuir valor para variável default ans. Não permite formatação! Ex.: >> disp(x1) 1 2 3 4 >> disp('Boa tarde!') Boa tarde!

disp  (expressão  ou  variável);  

Page 13: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

>>  texto=‘teste’;  >>  disp(texto)  teste  >>  disp(x3)                1          2          3                4          5          6                7          8          9          10        11        12  >>  disp(x4)  1.38  >>  disp(4^3)          64  

Page 14: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

fprin*:   esta   função   é   usada   para   mostrar  resultados  formatados  (saída  formatada).      expressão:   cadeia   de   caracteres   (string)   que   será  mostrada  e/ou  código  de  formatação  (caractere  de  conversão).  dado:  dado  ou  variável  que  será  exibido.  Ex.:  >>  fprinr('O  valor  é:  %d  \n',  4^3)  O  valor  é:  64        

fprinr(‘expressão’,  dado);  

Page 15: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Caracteres  de  Conversão          

Imprimindo  vetores  >>  vec  =  2:5;  >>  fprinr('%d\n',  vec)  2  3  4  5  

 

Caractere   Função  

%d   inteiro  

%f   número  real  (float)  

%c   um  caractere  

%s   cadeia  de  caracteres  (string)  

Page 16: INTRODUÇÃO*ÀPROGRAMAÇÃO*NO*MATLAB* … · Para muitos programas, o algoritmo básico consiste em 3 passos que devem ser seguidos: 1 • Fornecer*a(s)entradas 2 • Calcularo(

Sem o caractere de “nova linha”: >> fprintf('%d', vec)

2345>>

Podemos resolver isso utilizando script (script2.m).

% Demonstrar a saída de um vetor vec = 2:5;

fprintf('%d ', vec) fprintf('\n')

>> script2 2 3 4 5

>> Para matrizes, utilizar disp. (comando de repetição).