0% acharam este documento útil (0 voto)
89 visualizações6 páginas

Tutorial Matlab

1) O documento apresenta um tutorial sobre MATLAB, abordando tópicos como variáveis, vetores, matrizes, operações, funções, gráficos e controle de fluxo. 2) É demonstrado como criar e usar variáveis, vetores e matrizes, realizar operações com eles, indexá-los e alterar seus elementos. 3) Também são explicados conceitos como comentários, entrada e saída de dados, arquivos, diretórios, funções e scripts.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
89 visualizações6 páginas

Tutorial Matlab

1) O documento apresenta um tutorial sobre MATLAB, abordando tópicos como variáveis, vetores, matrizes, operações, funções, gráficos e controle de fluxo. 2) É demonstrado como criar e usar variáveis, vetores e matrizes, realizar operações com eles, indexá-los e alterar seus elementos. 3) Também são explicados conceitos como comentários, entrada e saída de dados, arquivos, diretórios, funções e scripts.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 6

Instituto Tecnolgico de Aeronutica ITA

Matemtica Computacional CCI-22


Tutorial sobre MATLAB

Professor: Marcos Ricardo Omena de Albuquerque Maximo


23 de fevereiro de 2016

% usado para comentrios.


Tipo de varivel no precisa ser definido explicitamente (o MATLAB infere o tipo):
x = 1
x = a
x = abc

; opcional (indica se o MATLAB deve imprimir o resultado ou no):


x = 1 % imprime o resultado
x = 1; % nao imprime resultado

O MATLAB lida nativamente com vetores e matrizes:


x = [1 2 3] % vetor linha
x = [1; 2; 3] % vetor coluna
x = [1 2 3; 4 5 6] % matriz 2x3
x = 2:2:6 % sequencia de numeros de 2 a 6, com passo 2
x = 2:-2:-10
x = 2:6 % passo eh assumido como 1 se for omitido

Operaes com vetores e matrizes:


x = [1 2 3]
y = [4 5 6]
x + y
x - y
x * y % multiplicacao de matrizes invalida
x % x transposto
x * y % 3x3
x * y % 1x1
x .* y % multiplicacao elemento a elemento
x ./ y % divisao elemento a elemento
x.^3 % exponenciacao elemento a elemento
x = [1 5 1; 5 1 1; 8 2 1]
inv(x)
x * inv(x)
x * x^-1

Matriz inversa:

1
x = [1 5 1; 5 1 1; 8 2 1]
inv(x)
x * inv(x)
x * x^-1

Indexao de matriz e submatrizes:


x = [5 4 3 2 1]
x(1) % MATLAB indexa a partir do 1
x(2:3)
x(end) % ultimo elemento
x(3:end)
x(1:2:5)
y = [2 4]
x(y)
x = [1 2 3 4 5; 6 7 8 9 10]
x(:. 2:3)
x(1, :)

Alterar elementos de vetores ou matrizes:


x = [1 2 3 4 5]
x(3) = 10
x(2:3) = [5 6]
x(7) = 10 % MATLAB aumenta a dimensao do vetor se necessario
x = [1 2 3; 4 5 6]
x(2,3) = 10
x(1:2, 1:2) = [1 0; 0 1]

Concatenao:
x = [1 2 3]
y = [4 5 6]
z = [x y]
z = [x; y]

Algumas funes do MATLAB so aplicadas a todos os elementos do vetor ou matriz:


x = [1:5; -1:-1:-5]
sqrt(x) % perceba que numeros complexos sao nativos
exp(x)
abs(x)

O help do MATLAB muito til. Para saber como funciona uma funo, digite:
help sqrt
help exp
help abs
help * % tambem funciona para operadores

Algumas funes teis para gerar matrizes:


zeros(3,4) % matriz de zeros
ones(4,3) % matriz de uns
diag([1 2 3]) % matriz diagonal
eye(3) % matriz identidade
rand(3) % matriz 3x3 de numeros aleatorios entre 0 e 1
rand(3,4) % matriz 3x4 de numeros aleatorios entre 0 e

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]

Escrita e leitura de arquivo:


clear % limpa o workspace
x = rand(10,2)
y = ones(2,10)
save(arquivo) % salva workspace como arquivo .mat
w = load(arquivo) % carrega workspace como struct
save(arquivo_ascii.txt, x, -ascii) % salva variavel x
% Note que o arquivo .txt salvo como ascii eh legivel
z = load(arquivo_ascii.txt)
x - z < 10^-5

Arquivo .m (script/funo):
% Script eh uma sequencia de commandos
edit somaQuadrados.m % editar o script (cria se nao existir)

Entre com o seguinte cdigo para o script somaQuadrados.m:


soma = 0
for i=1:10
soma = soma + i*i
end

Para executar o script, basta digitar o seu nome na Command Window :

3
somaQuadrados

Transformar o script em funo (recebe argumentos):


function soma = somaQuadrados(N)
% Calcula soma dos quadrados dos N primeiros numeros naturais.
% Obs.: comentarios logo apos o cabecalho sao o help da funcao.

soma = 0;
for i=1:N
soma = soma + i * i;
end % fecha o for

end % fecha a funcao

Testar a funo:
s = somaQuadrados(3)
s = somaQuadrados(10)
help somaQuadrados

Cada funo acessvel da Command Window deve estar em um arquivo .m separado.


Porm, pode-se criar funes auxiliares (no acessveis da Command Window ) dentro do
mesmo .m:
function soma = somaQuadrados(N)
% Calcula soma dos quadrados dos N primeiros numeros naturais.
% Obs.: comentarios logo apos o cabecalho sao o help da funcao.

soma = 0;
for i=1:N
soma = soma + quadrado(i);
end % fecha o for

end % fecha a funcao

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>

O MATLAB encontra scripts e funes que esto no diretrio atual ou no path:


path % lista diretorios incluidos no path
addpath(<nome_do_diretorio>) % adiciona diretorio ao path

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;

Tamanhos de vetores e matrizes:


x = [1 2 3]
comprimento = length(x)
x = [1 2 3; 4 5 6]
tamanho = size(x)
numLinhas = tamanho(1)
numColunas = tamanho(2)
numLinhas = size(x,1)
numColunas = size(x,2)

Iterando sobre uma matriz:


x = rand(10,5);

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

soma % imprime a soma

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy