Professional Documents
Culture Documents
Introdução ao MatLab
AGA0521 Manobras
Orbitais
Introdução a Programação
Ex:
Dados ??? Retornar
x1, x2, x3 menor Valor
Algoritmo
Recursos de Programação.
Caixas de Ferramentas.
>>help format
De maneira Geral:
[saída1,...,saídan]=comando(entrada1,...,entradan)
>>cd c:\meus_documentos
Como criar Variáveis
Variáveis Especiais:
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 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
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
Como criar?
D=‘valores’
E=‘ resultados obtidos’
>>help datatypes
>>help strfun
>>help elmat
>>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
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
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:
Exemplos:
If A==0 switch A
B=3 case 0 ; B=3;
Else otherwise; B=4; end
B=4
end
Loops:
For i=1:10
A(i)=i;
end
A=[ 1 2 3 4 5 6 7 8 9 10]
>> edit
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 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]
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
Sub-rotina: Sub-rotina:
Function y=f(x) Function y=f(x,a)
global a Y= x2 –ax+2;
Y= x2 –ax+2; Ou
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
Uso:
>>profile on
>>minha_função
>>profile report
Funções Gráficas
Funções elementares de
gráfico
§ O MatLab suporta muitos tipos de gráficos
para gráficos e superfíciesMATLAB :
§ Linhas bi-dimensionais (xversus y), a cheio,
gráfico de barras, queijos, desenhos
paramêtricos, eixos logarítmicos, suprfícies,
paramêtricos 3D, esféricos
§ Para pré-visualizar alguma dessas
potencialidades podemos olhar para as
DEMOs
Funções elementares de
gráfico
Gráficos simples 2D
X e Y dois vectores com as mesmas
dimensões
O comando plot(x,y)
●
Abre uma janela gráfica
●
Desenha um gráfico dos elementos de X
contra Y
Funções elementares de
gráfico
Gráficos simples 2D
Funções elementares de
gráfico
>>%Exemplo do gráfico de uma sequência
>>t=-1:0.01:1;
>>f=4.5*cos(2*pi*t - pi/6);
>>%Instruções para gráfico, nomes dos eixos …
>>plot(t,f),title('Fig.E1.2a');
>>axis([-1,1,-6,6]);
>>xlabel('t');
>>ylabel('f(t)');
>>text(-0.6,5,'f(t) = A cos(wt + phi)');
>>grid;
Funções elementares de
gráfico
Gráfico do exemplo anterior
Funções elementares de
gráfico
PLOT(X,Y) desenha o vector Y versus o vector X
TITLE('text') adiciona texto no topo do desenho
actual.
XLABEL('text') adiciona texto junto do eixo dos X.
YLABEL('text') adiciona texto junto do eixo dos Y.
GRID, automaticamente monta os principais dos eixos
GTEXT('string') ??
SUBPLOT(m,n,p),ou SUBPLOT(mnp), divide a janela da
figura numa matriz mxn de eixos pequenos.
>>t = 0:.01:2*pi;
>>y1 = sin(t); y2=sin(2*t); y3=sin(4*t)
>>plot(t,y1,y2,y3)
>>t = 0:.01:2*pi;
>>y = [sin(t)', sin(2*t)', sin(4*t)']
>>plot(t,y)