Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Matriz inversa:
1
x = [1 5 1; 5 1 1; 8 2 1]
inv(x)
x * inv(x)
x * x^-1
Concatenao:
x = [1 2 3]
y = [4 5 6]
z = [x y]
z = [x; y]
O help do MATLAB muito til. Para saber como funciona uma funo, digite:
help sqrt
help exp
help abs
help * % tambem funciona para operadores
2
Escrever mensagem na tela:
x = 1
disp(x vale 1)
disp(sprintf(x vale %d, x))
Entrada do usurio:
frase = Entre um numero:
x = input(frase)
Controle de fluxo:
for i=1:5
if i < 3
disp(sprintf(%d eh menor que 3))
elseif i == 3
disp(sprintf(%d eh igual a 3))
else
disp(sprintf(%d eh maior que 3))
end % fecha o if
end % fecha o for
x = 1
while x ~= 10
x = x + 1
end
Struct:
x = struct()
x.a = 1
x.b = abc
x.c = [1 2 3]
Arquivo .m (script/funo):
% Script eh uma sequencia de commandos
edit somaQuadrados.m % editar o script (cria se nao existir)
3
somaQuadrados
soma = 0;
for i=1:N
soma = soma + i * i;
end % fecha o for
Testar a funo:
s = somaQuadrados(3)
s = somaQuadrados(10)
help somaQuadrados
soma = 0;
for i=1:N
soma = soma + quadrado(i);
end % fecha o for
function x2 = quadrado(x)
x2 = x * x;
end
Note que funes no MATLAB sempre passam argumentos por valor. Uma funo pode
ter mais de um retorno em MATLAB:
function [soma, produto] = calculaSomaProduto(a, b)
% Calcula a soma e o produto de dois numeros a e b.
soma = a + b;
produto = a * b;
end
Comandos de diretrio:
ls % lista arquivos do diretorio atual
cd .. % volta uma pasta
4
cd <nome_da_pasta>/ % entra na pasta <nome_da_pasta>
Grficos:
t = 0:0.01:1
x = sin(2*pi*t) % senoide de frequencia 1 Hz
plot(t,x)
y = sin(2*pi*2*t) % senoide de frequencia 2 Hz
plot(t,y, r) % novo plot sobrescreve o anterior
% r gera grafico com linha vermelha (red)
plot(t,x)
hold on
% faz com que novos graficos sejam desenhados em cima do atual
plot(t,y,r)
xlabel(Tempo (s))
ylabel(Voltagem (V))
legend(senoide 1 Hz, senoide 2 Hz)
title(Graficos de senoides)
grid on % Coloca uma malha no grafico (ajuda a ler)
% salva figura como png
print -dpng grafico.png
% salva figura com 400 dpi (melhor resolucao)
print -dpng -r400 grafico400.png
% .eps eh interessante se usar editor de texto LaTeX
print -depsc2 grafico.eps
figure % cria nova figura
t = 0:0.1:1
plot(t,t.^2,g*-) % pontos sao marcados com *
Medindo tempo:
tic;
for i=1:10000
for j=1:10000
k = i * j;
end
end
tempoDecorrido = toc;
5
numLinhas = size(x,1);
numColunas = size(x,2);
soma = 0;
for i=1:numLinhas
for j=1:numColunas
soma = soma + x(i,j);
end
end