MATLAB – MAT RIX LAB ORATORY
A
JUDAhelp – help on-line em linha de texto helpwin – janela de help on-line helpdesk – documentação em hipertexto
C
OMANDOSpathtool – janela para configuração da lista de diretórios de busca workspace – janela do workspace
path / matlabpath – exibem path de busca corrente
what – exibe arquivos ‘.m’ contidos no diretório de trabalho clc – limpa tela
which – identifica e localiza arquivo
! – chama comandos do SO
>> !del teste.m
format – formato de exibição dos números na tela who – lista nomes das variáveis em uso
whos – lista nomes e tipos das variáveis em uso clear – elimina variáveis
O
PERADORES* multiplicação
.* multiplicação por escalar
E
XPRESSÕESB
OOLEANAS
0 (zero) ou nil (nulo, vazio) indica condição falsa 1 (um) ou diferente de 0 (zero) indica condição verdadeira
Símbolos e operadores booleanos:
Operador Teste retorna verdadeiro se Exemplo
== I igual a J I == J
~= I diferente de J I ~= J
< I menor que J I < J
> I maior que J I > J
<= I menor igual a J I <= J
>= I maior igual a J I >= J
~ (not) I falso ~ I
& (and) I e J verdadeiros I & J
| (or) I ou J verdadeiro I | J
V
ARIÁVEISSão case-sensitive e o nome deve ser formado com o máximo de 32 caracteres
C
ONTANTESN
UMÉRICASpi – 3.141592...
inf – infinito (1/0) NAN – não número (0/0)
realmin – menor número real (2
-1022) realmax – maior número real (2
1023)
F
UNÇÕEST
RIGONOMÉTRICASsin – seno cos – cosseno
sinh – seno hiperbólico
F
UNÇÕESM
ATEMÁTICASsqrt – raiz quadrada exp – exponencial log – logaritmo
abs – retorna o valor absoluto fix – parte inteira de um número real round – inteiro mais próximo floor – menor inteiro mais próximo ceil – maior inteiro mais próximo
F
UNÇÕESM
ATRICIAISeye – matriz identidade
>> a = eye(3)
>> a = 1 0 0 0 1 0 0 0 1
zeros – matriz de zeros ones – matriz de 1’s det – determinante inv – inversa
reshape – reformata matriz
size – vetor contendo o tamanho de cada dimensão da matriz lenght – comprimento do vetor ou dimensão máxima da matriz
diag – retorna a diagonal de uma matriz ou cria matriz diagonal a partir de um vetor tril – matriz triangular inferior
triu – matriz triangular superior
fliplr – inverte ordem das colunas
flipud – inverte ordem das linhas
I
NDEXAÇÃO DOS ELEMENTOS DE UMA MATRIZ>> a = [4 3; 2 1];
>> a = 4 3 2 1
>> a(1,1) = 4 % linha, coluna, matriz
>> a(3) = 2 % indexação sequencial (ordem em linhas)
T
IPOS DED
ADOSString (Cadeia de caracteres)
>> txt = ‘Resposta’
>> a = double(txt)
>> a = [82 101 115 112 111 115 116 97] % valores em ASCII
>> char(a)
>> a = Resposta
Cell Array (células)
Permite o armazenamento de matrizes de naturezas diferentes em uma única estrutura identificada por um único nome.
>> celula = cell(2)
>> celula{1,1} = eye(3)
>> celula{1,2} = ‘matriz identidade’
>> celula{2,1} = pi
>> celula{2,2} = 0:1:10
num2cell – transforma um vetor numérico em células
>> v = 1:5 % v = [1 2 3 4 5]
>> c = num2cell(v)
>> c = [1] [2] [3] [4] [5]
cat – faz a função inversa, concatena vetores
>> cat(Dim,a,b) % concatena os vetores a e b na dimensão Dim
>> cat(2,célula{:})
S
TRUCT(E
STRUTURA)
Permite o armazenamento de matrizes de naturezas diferentes, identificáveis por nome de campos.
>> s = struct(‘Nome’, {‘ST01’}, ‘Identificador’, {200}, ‘Valores’, {[10 20 30]})
>> s = Nome: ‘ST01’
Identificador: 200
Valores: [10 20 30]
>> s.Nome
>> ans = ST01
>> s(2).Nome = ‘ST01’
>> s(2).Identificador = 201
>> s(2).Valores = [0.1 5]
M
ONTANDO VETORES>> a = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1]
ou
>> for j=1:11 % para j de 1 até 11
a(j) = (j-1)/10; % compute o j-ésimo termo
>> end % indicação de final
ou
>> a = linspace(0,1,11)
ou
>> a = 0:0.1:1 % a = <inicio>:<incremento>:<final>
linspace(a,b,c) – vetor linearmente espaçado (a = inicial, b = final, c = número de elementos)
logspace(a,b,c) – vetor logaritmicamente espaçado (inicial = 10
a, final = 10
b, c = número de elementos)
C
ONCATENANDO MATRIZESa = [1 2] b = [3 4]
Concatena matrizes em linhas
>> c = [a b] % c = [1 2 3 4]
Concatena matrizes em colunas
>> d = [a ; b] % d = [1 2 3 4]
find – retorna um vetor coluna com os índices sequenciais dos elementos = 0 ou que satisfazem a condição determinada
>> b = find(a < 20) % retorna um vetor coluna com os índices dos elementos % de a menores de 20
sort(a, Dim) – ordena elementos da matriz a na dimensão Dim, se DIM não for informado ordena as colunas.
R
ESOLVENDO SISTEMAS LINEARES Ax = bx = A-1 b
>> A = [3 1 5 2]
>> b = [2; -9]
>> x = A\b
Combinando as linhas
>> U = [A b]
>> u = rref(U)
>> xu = u(:,3)
E
DITOR DEP
ROGRAMAS>> edit
% - comentários
... – linha de comando continua na próxima linha
S
CRIPTSequência de comandos para automatizar algum processo repetitivo. Não trabalha com parâmetros de entrada nem de saída. Sempre trabalha com as variáveis do workspace (usa variáveis pré-definidas e define variáveis no workspace)
F
UNÇÃOTambém é uma sequência de comandos, mas que aceita comandos de entrada, retorna parâmetros de saída. Utilizam seu próprio espaço de memória para armazenar suas variáveis locais.
function [ps1, ps2, ..., psn] = nome_da_funcao (pe1, ..., pem) ps1, ..., psn = Parâmetros de saída
pe1, ..., pem = Parâmetros de entrada
% estat.m - Exemplo 1
% [media, desvio_padrão] = stat(x)
% retorna média e desvio padrão dos valores em x function [media, desvio_padrão = stat(x)
media = mean(x); % media
desvio_padrao = std(x) % desvio padrão
Interessante aproveitar o cabeçalho para documentar o programa e gerar os textos de auxílio par o comando help.
A função e o arquivo m-file devem ter o mesmo nome.
Variáveis do workspace não são reconhecidas dentro das funções
Podem ser criadas subfunções dentro de uma função
E
STRUTURAS DES
ELEÇÃOIf, elseif, else
if I == JA(I,J) = 2;
elseif abs(I – J) == 1 A(I,J) = -1;
else
Switch
switch Valcase 0
A(I,J) = 2;
case 1
A(I,J) = -1;
otherwise A(I,J) = 0;
end
E
STRUTURAS DER
EPETIÇÃOWhile
while I < J if I == JA(I,J) = 2;
elseif abs(I – J) == 1 A(I,J) = -1;
else
A(I,J) = 0;
end I = I + 1;
end
For
for <Valor> = <inicio>:<incremento>:<fim>
<Expressão1>
...
<Expressão2>
end
for i=1:10000
x(i) = cos(2*pi*i/100);
end;
V
ARIÁVEISG
LOBAIS global <nome da variável> % declarar também dentro da funçãowhich – pesquisa arquivos
>> which sin
>> which polyfit
struct e cell array
R
ESOLVENDO SISTEMAS LINEARES>> A = fix (10 * rand(10));
>> B = fix (100 * rand(10,1))
>> C = [A B]
>> D = rref(A)
>> E = A\B
Calcular a diferença de D(:,11) e E
Format – muda a formato de apresentação
format longformat short
IF, Switch, For
Save e Load
>> save (nome do arquivo)
>> save (arquivo) <nome das variáveis> - salvar variáveis (.mat)
>> load (nome do arquivo.mat)
>> load (nome do arquivo) (variável)
find – retorna um vetor coluna com os índices seqüenciais dos elementos = 0 ou que satisfazem a condiç ão determinada
>> b = find(a < 20) % retorna um vetor coluna com os índices dos elementos de a
% menores de 20
F
UNÇÕ ES PARA IMPORTAÇ Ã O DE DADOSArquivos ASCII
>> dlmread (<arquivo>, <delimitador>) % importa dados
>> dlmwrite (<arquivo>, <matriz>, <delimitador>) % exporta dados
Outras funções
importdata – importa dados de vários tipos de arquivos (bmp, mat, txt, wav, etc) xlsread – importa dados de planilhas excel
P
LOT>> % Exemplo: Gráfico f(x) = x * cos(x), -2p < x < 2p
>> x = -2*pi : 0.1 : 2*pi;
>> y = x .* cosx(x);
>> figure(1);
>> plot(x,y); % default : linha contínua azul
>> plot(x,y,’r*’); % marcador * na cor vermelho
C
ONFIGURAÇÕ ES DO GRÁFICOhold on – habilita / desabilita exibiç ão de gráficos na mesma janela.
grid on – habilita / desabilita grid do gráfico zoom(fator) – zoom no gráfico
legend(‘x * cos(x)’) - legenda xlabel(‘Eixo x’) – nome do eixo x ylabel(‘Eixo y’) – nome do eixo y
title(‘Grá fico f(x)=x * cos(x)’) – titulo do gráfico
axis([xmin xmax ymin ymax]) – altera limites do gráfico (escala)
>> axis([-pi pi –1 1]);
V
ÁRIOS GRÁFICOS NUMA SÓ JANELA>> plot (x,sin(x),’r’, x,cos(x),’k:’, x,sin(x).*cos(x),’b>’);
>> legend(‘sin(x)’,’cos(x)’,’sin(x).*cos(x)’);
Plotando matrizes – cada coluna gera uma curva
>> A = fix(10 * rand(10));
>> plot(A);
plotyy – duas curvas no mesmo gráfico com escalas diferentes
>> x = 0.1:0.1:10
>> plot(x, sin(x));
>> plot(x, exp(x));
>> plotyy(x, sin(x), x, exp(x));
subplot(linhas, colunas, posição) – gera vários gráficos numa mesma janela.
>> x = -2*pi:0.1:2*pi;
>> y = x .* cos(x);
>> subplot(1,3,1) % 1 linha, 3 colunas na posição 1
>> plot(x,y);
>>
>> subplot(1,3,2) % na posição 2 com zoom
>> plot(x,y);
>> zoom(2);
>>
>> subplot(1,3,3) % na posição 3, 2 funções no mesmo gráfico
>> plot(x,y,’r’);
>> hold
>> plot(x, x.*sin(x));
exportar gráfico – grava gráfico como imagem no disco
>> print –dbitmap –r300 <arquivo>
G
RÁ FICOS PARA FUNÇÕ ES ESPECIAISpolar, loglog, semilogx, semilogy plot3 – cria uma curva no espaç o 3D
>> x = -4*pi : 0.1 : 4*pi
>> y = -4*pi : 0.1 : 4*pi
>> plot3(cos(x), sin(y), (x+y)) % fornecer coordenadas x, y, z