Vous êtes sur la page 1sur 35

Curso MATLAB 6

Instrutor: Marcelo Escobar


Introdução
escobar029@hotmail.com
Introdução a Programação:

Entradas Processamento Saídas

Dados Fornecidos Lógica de Programação Dados Fornecidos


ao Programa Algoritmo pelo Programa

Argumentos de Linguagem Argumentos de


Entrada Retorno
Seqüência de
comandos

Ex:
Dados ??? Retornar
x1, x2, x3 menor Valor
Algoritmo:
Sequência de Passos Lógicos:
Independente da Linguagem.

Dados: x1, x2, x3


Ler x1
Comparar x1 e x2
Se x1 < x2, min= x1
Se x2 < x1, min= x2
Comparar min e x3
Se min<x3 , min=min
Se x3 <min,min=x3
Retornar: min
Linguagem MATLAB:

Núcleo da Linguagem formada por vetores e Matrizes.

Recursos de Programação.

Ferramenta de Interface Gráfica com o Usuário.

Caixas de Ferramentas.

Comand Window: [ área de trabalho]

>>demo [apresenta uma série de demonstrações de uso]

>>tour [apresenta um tour pelo matlab]


Janelas MATLAB:

Comand Window: Área de Trabalho.

Comand History: Registro de Comandos executados na C.W.

Current Directory: Mostra Arquivos presentes no Diretorio Atual.

Worspace: Armazenamento de Variáveis criadas na Comand Window.

M-file Editor: Área de Edição de arquivos.

Launch Pad: Caixas de Ferramentas do matlab.

Simulink: Ferramenta do Matlab para Sistemas Dinâmicos.


Tipos de Variáveis :

Real , Inteira: double array- variáveis numéricas.

Complexa: double array (complex)-variáveis numéricas.

Caracter: Char array-variáveis de texto.

Célula: cell array-Permite armazenamento de variáveis de


tipos diferentes no formato celular do Matlab.

Estrutura: struct array-Permite armazenamento de variáveis


de tipos diferentes no formato estrutural do Matlab.
Formato de Variáveis Numéricas :

>>help format

>>format short [5 dígitos]

>>format short e [5 dígitos +expoente]

>>format long [16 dígitos]

>>format long e [16 dígitos +expoente]

>>format + [positivo, negativo ou 0]

>>format rat [Aproximação racional]


Comandos do MATLAB :
Na comand Window: ( >> “sinal de prompt” )
>>helpdesk [documentação]
>>helpwin [help on line]
>> help [ lista os tópicos de ajuda]

Ex: >>help elfun [ funções matemáticas]


Fornece uma listagem de funções.
Para verificar o funcionamento de cada função:

Ex:>>help sin [sin(X) is the sine of the elements of X.]

De maneira Geral:

[saída1,...,saídan]=comando(entrada1,...,entradan)

lookfor: procura de comandos com alguma palavra.


Primeiros Passos:
Após abrir o Matlab e fazer um reconhecimento geral, a
primeira coisa a se fazer após editar as suas preferências, é
selecionar o diretório de trabalho.
Caso isso não seja feito, o Matlab salva os arquivos na pasta
Work dentro do diretorio no qual o Matlab se encontra
instalado.

Como mudar o Diretório?

Opção 1: Na barra de ferramentas, em current directory, clicar


no botão [...] e selecionar o diretorio como no explorer.

Opção 2: usando o comando [ cd ] e digitar todo o caminho do


diretorio, lembrando que nesse caso, não deve haver espaços
nem caracteres especiais. [help cd].

>>cd c:\meus_documentos
Como criar Variáveis:
Atribuição: [ = ] x Equivalência: [==] :

Ex: >>A=2 [atribui a A o valor numérico 2]


>>A==2[A=2 ?, retorna 1 se verdadeiro e 0 se falso]

Matlab é case Sensitive.[ Variável A é diferente de a]

Caso não se forneça o nome da variável de atribuição, o


Matlab cria uma variável chamada ans.[answer].

Se a variável já existe, o matlab armazena sempre a ultima


atribuição feita.

Deve-se evitar dar nomes às variáveis usando nomes de


comandos internos do matlab ou usando variáveis especiais
que controlam o fluxo da programação. O nome da variável
deve começar por uma letra e não deve conter caracteres
especiais nem espaço.
Como criar Variáveis:
Variáveis Especiais:

For end if while function elseif case otherwise switch continue


else try catch global persistent break

Dica: Para saber se o nome da variável é um comando interno


do matlab, basta dar um >>help [nome da variável].
Caso não seja, o matlab retorna uma mensagem dizendo que
a variável [nome] não foi encontrada.

Comandos de Gerenciamento: >> help general


Who: lista as variaveis atuais
Whos: lista as variaveis atuais com seus respectivos tipos.
What: lista os arquivos no diretorio atual.
Cd: seta o diretorio.
Pwd: retorna o caminho do diretorio atual em uma variável.
Clear: limpa as variaveis atuais[clear all]
Clc: limpa a tela de comando sem deletar as variaveis.
Close all: fecha as janelas de figuras abertas.
Como criar Variáveis:
Execução de comandos:
[;]-no final do comando executa e não exibe resultado.
[,]-permite a execução de dois comandos na mesma linha,
lembrando que eles são executados seqüencialmente.
[Crtl+C] -interrompe a execução do comando, usado no caso de
travamento durante a execução.
[ ] -retorna as linhas executadas anteriormente.
[%]-indica comentário
[...]-permite continuação de escrita do comando na linha seguinte
ex: A=2.1;B=3*A;
Comandos de Dimensionamento:
length: dimensão do vetor
size: dimensão da matriz
Vetores:
Criando um vetor:
Opção 1: >> C=[1 2 3 4 5] ou >> C=[1 ,2 ,3 ,4 ,5]
Opção 2: Usando comando linspace, ou logspace.
linspace(valor inicial, valor final, número de pontos)
linspace cria um vetor linearmente espaçado.
>>C=linspace(1,5,5)
Opção 3: >>C=1:1:5
Valor inicial: incremento: valor final
Opção 4: Usando estrutura for
For i=1:5
C(i)=i; end
Obs: >>A=2;
O matlab encara a variável A como uma matriz 1x 1.
Manipulação de Vetores:

Operações Básicas: +, - ,* ,/, ^


Operações Ponto a Ponto: ./, .*, .^
Transposição: C’ [ transposta de C-usa aspas simples]

Operações elementares:
Log exp sin cos tan etc...
>>help elfun

Ex:
>> a=[ 1 2 3]; b=[ 4 5 6];
>> a.*b
>>a*b’
Matrizes:
Como criar:
Opção 1: a partir de vetores
C=[ 2 3];D=[ 3 4]; M=[C;D]
Opção 2: M= [ 2 3; 3 4] ou M=[ 2,3; 3, 4];
Opção 3: usando estrutura for
For i=1:2
For j=1:2
M(i,j)=i+j;
end
end

>>help printmat [ exibição da matriz na tela]


Manipulação de Matrizes:
Além das operações já citadas anteriormente para vetores.
>>help elmat
>>help matfun
>>help sparfun

Produto Matricial: A*B


Inversa: inv(A)
Determinante: det(A)
Posto: rank(A)
Valores Caracteristicos: eig(A)
rand , eye, zeros, ones- criam matrizes de ordens definidas.
Indexação de Matrizes:
M(linha, coluna)
M(1,1)- retorna elemento M11
Caso não seja especificado a coluna da matriz, o que não é
necessário no caso de vetores, ele considera o vetor coluna 1.
Ex: A=[ 1 2; 3 4]
A(1)=1 A(2)=3
Pode-se também usar incrementos:
C=[ 1 2 3; 4 5 6];
C(1:2,2)=[2 ;5]; C(1,1:2:3)=[1 3];
C(1,2:3)=[2 3];
C(:,3)=[3; 6];
[:] indica todas as linhas ou colunas.
Matrizes Celulares:
Opção 1: Criando matriz celular vazia e depois preencher
M=cell( num linhas, num colunas), M=cell(2,3)
Opção 2: Preencher direto
M(1,1)={ [ 1 2; 3 4]}

Indexação de posições celulares:


M{ linha 1, coluna j}: M{1,2}=[ 1 2; 3 4];
Indexando elemento internos das células:
M{1,2}(2,1)=3
>>cellpisp – exibe toda a célula
Utilizada para armazenar variáveis matriciais ou de diferentes
tipos com fácil indexação.
Estruturas:

Como criar? Variável: Marcelo


Marcelo.idade=25
Marcelo.peso=70
Marcelo.altura=1.70

Variável utilizada para armazenar variaveis de tipos diferentes


de uma forma estruturada. Utilizada por exemplo em Banco
de dados com fácil acesso de informações.
Variáveis de Texto:
Como criar?
D=‘valores’
E=‘ resultados obtidos’

>>disp(D); exibe o texto contido em D


>>eval(‘D’) ; avalia o conteúdo do string.
Ex:
>>T=‘D=2’;
>>eval(T); cria a variável D.
Concatenação:
Str=[ ‘valor=‘ ‘D’]
Vamos ver melhor para que a concatenação em interfaces.
Conversão de Variáveis:

>>help datatypes

>>help strfun

>>Char [ converte para caracter]


>>Double [ converte para número]
>>int2str [ converte de inteiro para string]
>>str2int [converte de string para inteiro]
>>num2str [converte de real para string]
>>str2num [converte de string para real]
Funções de Arredondamento:

>>help elmat

>>help fix [Arredonda na direção do zero]


>>help floor [Arredonda na direção de -oo]
>>help ceil [Arredonda na direção de +oo]
>>help round [na direção do inteiro mais próximo]

>>help rem [ resto de divisão]


>>help abs [ modulo]
>>help singn [ sinal ]
Operações Relacionais e Lógicas:

>>help ops

Operadores Relacionais:
< - menor que
<= -menor ou igual
> - maior que
>= -maior ou igual
== - equivalência
~= -diferente

Operadores lógicas:
& -e
| -ou
~ -não
Operações Relacionais e Lógicas:

Retornam sempre 1 se verdadeiro e 0 se falso


Exemplos: v=[ 1 -2 3 -4 5]

V>0: [ 1 0 1 0 1]
(V>0) & (V<4): [ 1 0 1 0 0]
(V==1) | (V<0): [ 1 1 0 10]
~(V<0): [ 10 10 1]

Comando find:
n=find(v>0)
Ou [n,m]=find(v>0)
N-linha
M-coluna
Encontra os índices da matriz que satisfazem operações
relacionais e lógicas.
Funções Relacionais e Lógicas:

Retornam sempre 1 se verdadeiro e 0 se falso.

xor: [ ou]
any: [ qualquer]
all: [todos]
isreal: [ verdadeiro se real]
iscomplex: [ verdadeiro se complexo]
isprime: [ verdadeiro se primo]
isifinite: [ verdadeiro se infinito]
isnan: [ verdadeiro se não é um número]
Controle de Fluxo:
>>help lang

Teste condicional:

If else end

Teste múltiplo:

Switch case otherwise

Exemplos:
If A==0 switch A
B=3 case 0 ; B=3;
Else otherwise; B=4; end
B=4
end

Se A é igual a zero B=3 senão B=4.


Controle de Fluxo:

Loops:

For i=1:10
A(i)=i;
end
A=[ 1 2 3 4 5 6 7 8 9 10]

O uso da estrutura for, limita o número de iterações, ou seja,


o número de vezes que os comandos são executados.
it=0;
While it<10
it=it+1;
A(it)=it;
End
A=[ 1 2 3 4 5 6 7 8 9 10]
A estrutura while permite a execução até que um critério seja
satisfeito.
Arquivos M:
>> edit

Ou Menu File– New--- M-file


O uso do editor permite que os comandos a serem executados
sejam salvos em um arquivo.

Tipos de arquivos:
Script [ entradas definidas internamente ou interativamente]
Function [ arquivo genérico com entradas e saídas]

Ex:
Script [soma.m] Função [som.m]
A=2; B=3; function S=soma(A,B)
Soma=A+B S=A+B;

Execução:
>>soma ou >>som(2,3)

>>help type [ exibe m-file na tela]


Argumentos de Arquivos M:
>>help iofun

Entrada de dados:
>> help xlsread [ lê dados de uma planilha em excel]
>>help input [ recebe entrada de dados na Comand Window]
>>help dlmread [ lê dados em arquivo de texto]
>>help save [salva dados em arquivo .mat]
>>help load [carrega dados de arquivos .mat]

Saída de dados:
>> help diary [registro do log da sessão]
Pode ser usado para armazenar resultados em arquivo txt.
>>help disp [exibição de texto e de variáveis na tela]

Interfaces mais avançadas será vista no capitulo Interfaces com o


usuário
Argumentos de Arquivos M:
>>help nargin [numero de argumentos de entrada de uma função]

>>help nargout [numero de argumentos de uma função]

Nargin pode ser usado para usar entradas opcionais.


Nargout pode ser usado para limitar a execução de linhas de comando
desnecessaria se um dos argumentos de saída não é pedido na chamada da
função.
Quando criamos as nossas funções, podemos inserir um texto de ajuda antes
da primeira linha de comando, assim quando executarmos help
nome_da_função esse texto será exibido na tela.

function [s1,s2]=nome(e1,e2)
%Digite aqui o help da função
if nargin<2;e2=0.001;end
S1=e1+e2;
if nargout<1; s2=2*e2;end
Execução de Arquivos M:
>>help pause [permite uma pausa durante a execução]

>>help echo [escreve na tela as linhas de comando]

>>help beep [emite um sinal sonoro]

>>help error [emite uma mensagem de erro na tela]

>>help warning [emite uma mensagem de warning na tela]

>>help keyboard [suspende execução até que o teclado seja acionado]

>>help waitforbuttonpress [suspende execução até que o mouse seja


acionado]
Variáveis Globais e Locais:
A execução de um arquivo m como um script, lê as variáveis
existentes no workspace e salva todas as variáveis criadas durante
sua execução.

No entanto, quando executamos um arquivo m tipo function, este


não lê as variáveis existentes no workspace, lê apenas as
variáveis dadas na entrada do programa ou aquelas definidas
internamente. Além disso, a function pode até exibir na tela
resultados se não usarmos [;] no final da linha, mas ela só retorna
os argumentos assinados em sua saída e não salva as demais
variáveis no workspace.

Para que uma function leia uma variável definida externamente, é


necessário definir essa variável como global em todos os arquivos
em que ela é utilizada, ou passar como parâmetro de entrada.
Variáveis Globais e Locais:
A desvantagem de passar como parâmetro, é que se usarmos uma
sub-rotina pronta sendo chamada pelo nosso arquivo principal,
precisamos alterar a mesma para esta receber as variáveis.

Ex:Queremos resolver uma equação na forma

F(x)= x2 –ax+2, onde a é fornecido pelo usuário.

Sub-rotina: Sub-rotina:
Function y=f(x) Function y=f(x,a)
global a Y= x2 –ax+2;
Y= x2 –ax+2; O
u Programa principal:
Programa principal: Function s=main(a)
Function s=main(a) s=fsolve(‘f’,0,[],a);
global a
s=fsolve(‘f’,0);
Variáveis Globais e Locais:
Nesse caso, a função fsolve, já possui uma entrada para
parâmetros, mas muitas vezes quando usamos uma rotina
genérica para resolver nosso problema, temos que redefinir a
entrada da função e a depender da complexidade do programa
temos que alterar em varias linhas e isso deixa a nossa sub rotina
menos genérica.

O sugerido é usar variáveis globais, e sempre no inicio dos


programas usar um clear all para limpar as variáveis existentes no
workspace evitando confusão na memória durante a execução de
nossos problemas.
Debugando Arquivos M:
Debugar, consiste em depurar o programa, ou seja, verificar a
existência de erros.

>>help depfun [ dependências do arquivo]

Permite o retorno de diretórios utilizados, funções utilizadas,dentre


outras informações.

>>help profile [ Perfil de desempenho]


Traça um perfil de desempenho, com o tempo associado à
execução de cada comando, dentre outras informações.

Uso:
>>profile on
>>minha_função
>>profile report

Vous aimerez peut-être aussi