Você está na página 1de 8

MATLAB

Caractersticas
MATtrix LABoratory
IDE (Integrated development environment)
Linguagem de alto nvel

Vantagens

Otimizado para trabalhar com matrizes


Rpida implementao
Cdigo conciso
Excelente documentao e base de usurios
Visualizao de dados

Desvantagens
Alto custo monetrio
Linguagem semi-interpretada
Uso intensivo de memria
Linguagem mal projetada

Entrando Comandos
Comandos podem ser executados na command window, ao serem escritos aps o MATLAB prompt
(>>) e pressionando a tecla Enter.

O Matlab capaz de realizar contas simples com operaes bsicas

resultado1 = 2*3

E tambm utilizar funes especficas

resultado2 = sqrt(9) %sqrt - raiz quadrada

Workspace
Todas as variveis criadas so salvas no Workspace.

Caso no seja especificado, todo clculo ou varivel de sada guardado na varivel ans.

O workspace pode ser salvo para ser utilizado em sees futuras

save myWorkspace.mat

deletado
clear

e recuperado

load myWorkspace.mat

Miscelnea
O comando clc limpa a command window

clc

Ao colocar um ponto e virgula/semicolon (;) aps algum comando suprimimos o seu output

withOutput = [1 2 3]
withoutOutput = [1 2 3];

Ao apertar a tecla TAB o MATLAB tentar completar aquilo que voc est escrevendo olhando para
possveis nomes de funes no path ou em nome de variveis

para parar a execuo de algum comando aperte Ctrl + C

Para repetir comandos utilizados anteriormente aperte a tecla seta pra cima ()

A tecla F9 executa o texto selecionado na command window.

Ao apertar Ctrl+Enter executa-se toda uma seo de um Script.

O smbolo para adicionar comentrios o %

%eu sou um comentrio

A funo exist verifica a existencia de funes, arquivos, pastas e variveis

exist('sum')

Obtendo Ajuda
O sistema de ajuda do MATLAB bastante completo. Caso voc queria saber a utilidade de uma
funo simplesmente selecione a funo e aperte F1. Pode-se tambm digitar help 'nome da
funo', no entando esse mtado faz com que a ajuda aparec na Command Window, o que no
muito prtico

help sum

Para procurar um determinado termo na definio de todas as funes do MATLAB utilize o seguinte
comando

lookfor sum
Ao apertar apenas F1, sem selecionar nada, a ajuda geral do MATLAB aparece

Formato de exibio
A partir do comando format podemos mudar o formato de exibio dos nmeros na "command
window"

format long %formato padro, 4 casas depois da virgula


format short %15 casas depois da vrgula

note que esses comandos no mudam os nmeros em si, apenas como o MATLAB nos mostra o seu
valor.

Criao de Matrizes
Todas as variveis no Matlab so matrizes, o que significa que elas podem conter mltiplos elementos.
Um nico nmero, chamado de escalar, na verdada uma matriz 1x1. Ou seja, contem 1 linha e 1
coluna

Para criar uma matriz utilizamos os operadores colchetes/brackets ([]), onde cada elemento separado
por um espao ou virgula.

array1 = [1 2 3 4]
array2 = [2,4,6,8]

As matrizes acima tem apenas uma dimenso podendo ser chamadas de vetores/vectors.

Para criar uma matriz com multiplas linhas utilizado o ponto e virgula/semicolon(;)

matrix = [1 2 3; 4,5 6; 7,8,10]

Note que tanto a virgula como o espao podem ser utilizados intercambiavelmente.

O operador dois pontos/colon (:) utilizado para criar matrizes com valores incrementais. atravs da
forma comeo:incremento:fim

0:5:150

Caso voc saiba o nmero de elementos que deseja no vetor (ao invs doespaamento entre cada
elemento) voc pode utilizar a funo linspace(comeo,fim,numero_de_elementos).

linspace(0,150,31)

Outro mtodo de criar matrizes atravs da utilizao de funes prprias como zeros,ones,rand
e magic. O funcionamento dessas funes do tipo funcao(numero_de_linhas,
numero_de_colunas)

zeroMatrix = zeros(3) %matriz de zeros


oneMatrix = ones(3,1) %matriz de uns
randomMatrix = rand(1,3,2) %matriz aleatria
intRandomMatrix = randi(10,3,2) %matriz de interiros aleatrias
magicSquare = magic(3) %quadrado mgico

Operao com matrizes


Os operadores matemticos bsicos no MATLAB atuam sobre toda a matriz a quais so empregados.

a = [1 2 3 4]
b = [2 4 6 8]
a + 10 %soma
a - 10 %subtrao
a' %transposio
a * b' %multiplicao de matrizes

Note que a operador de multiplicao atua como uma multiplicao normal de matrizes. Na maioria das
vezes no entanto, queremos que ocorra a multiplicao elemento pora elemento, sendo assim usado o
ponto/dot(.)

a.*a %multiplicao
a.^3 %potncia
a./b %diviso
a.\b %diviso inversa

Note que no existe diviso entre matrizes, dessa forma o operador barra/slash(/) e barra invertida/
backslash (\) quando no acompanhados do ponto so utilizado para resolver sistemas lineares. Por
exemplo no sistema abaixo o vetor que resolve a aqueo

A = rand(4)
B = [1 2 3 4]
x = B/A

Simirlamente o operador barra invertida resolve sistemas da forma

x = A'\B'

OBS : Teoricamente o operador para transpor matrizes o .' uma vez que se usarmos apenas o
' em matrizes imaginrias, teremos o seu conjugado complexo. Para matrizes reais .' e ' so
equivalentes.

Concatenao
Concatenao o processo de jutnar matrizes em uma matriz maior. Na verdade j usamos
concatenao quando criamos nossa primeira matriz, ao juntar nmeros que nada mais so matrizes
de tamanho 1x1.O operador de concatenao so os colchetes/brackets ([])

[a,a]%concatenao horizontal
[a a]
[a;a]%concatenao vertical
Indexao
Podemos selecionar vrios elementos de uma matriz simultaneamente utilizando indexao. Para
tanto utilizamos a seguinte construo M(m,n). onde M a matriz quais elementos esto sendo
selecionados, m a linha e n a coluna

M = magic(4)
M(1,2) %elemento da primeira linha e segunda coluna de M

Tambm pode ser utilizado apenas um ndice ao qual far com que a busca seja realizada seguindo as
colunas da matriz

M(8) % oitavo elemento de M, contando seguindo as suas colunas.

Pode-se usar a palavra-chave end para se referir ao ltimo elemento de uma matriz.

M(1,end)
M(end,2)
M(end-1,end-2)

Se quisermos selecionar vrias linhas e colunas simultaneamente, utilizamos vetores como elemento
de indexao.

M([1 2 3],4)
M(1:3,4)

Quando no colocamos argumentos junto dos dois pontos selecionamos todos os elementos daquela
dimenso

M(:,1) %todas as linhas da primeira coluna


M(1,:) %todas as colunas da primeira linha

Colocando apenas os dois pontos selecionamos todos os elementos da matriz e os colocamos num
vetor coluna. Caso essa construo ocorra do lado esquerdo de uma expresso, preenche-se a matriz,
preservando o seu formato.

M(:) %todos os elementos de M em um vetor coluna


M(:) = 1:16 %preechendo os elementos de M com os nmeros de 1 a 16

Para deletar algum elemento de uma matriz utilizamos uma matriz vazia ([])

matrix(2) = []

Note que a matriz teve seu formato modificado uma vez que no temos elementos suficientes para
manter ela no formato original.

Exerccio 1
1 - Criem uma matriz M atravs do comando M = magic(7)
2 - Criem um varivel chamada "firstLineSecondColumn", com o elemento da primeira linha e segunda
coluna da matriz M.

3 - Criem uma varivel chamada "lastLineFirstColumn", com o elemento da ultima linha e primeira
coluna da matriz M.

4 - Criem uma nova varivel chamada "oddIndices" contendo apenas os elementos de ndice mpares
da matriz M.

5 - Criem uma nova varivel chamada "allExceptFirstLine" contendo todos os elementos de M, menos
aqueles da primeira linha.

6 - Crie uma nova varivel "corners" contendo apenas os elementos dos cantos de M.

7 - Criem uma varivel "concatenate" contendo as variveis "firstLineSecondColumn",


"lastLineFirstColumn" e "oddIndices".

8 - Criem uma varivel "sumScalar" que a soma das variveis "firstLineSecondColumn" e


"lastLineFirstColumn".

9 - Descubra qual o valor da soma dos elementos da primeira linha de M multiplicados pelos
elementos da segunda coluna de M.

10 - Criem uma varivel "matrizPower" que seja M elevado a raiz de 5.

11 - Crie uma varivel chamada "equalSpaced" contendo 11 elementos igualmente espaados entre 1
e 51

12 - Crie outra varivel chamada de dividedByThree que contenham todos os elementos de


equalSpaced + 10 que sejam divisiveis por 3

Exemplo prtico 1
A trajetoria de um objeto pode ser modelada como

onde y a altura (m), o ngulo inicial (radianos), x a distncia horizontal(m), g a acelrao da


gravidade (0,81 m/s^2), a velocidade inicial (m/s) e a altura inicial. Escreva um Script para
encontrar as trajetrias pra e m/s para ngulos iniciais de 15 a 75 em incrementos
de 15. Empregue uma faixa de distncias horizontais de = 0 a 80 m em incremento de 5 m. Os
resultados devem ser reunidos em um arranjo onde a primeira dimenso (linhas) corresponda s
distncias e a segunda dimenso (colunas) corresponda aos diferentes ngulos inciais . Use essa
matriz para gerar um nico grfico das alturas versus as ditncias horizontais para cada um dos
ngulos iniciais.

Funes matemticas
O Matlab apresenta uma srie de funes matemticas bsicas.

x= [1 2 3 4 5.5 1.2 -3.1]


%% Aritimtica bsica
sum(x); %soma dos elemetos do vetor
cumsum(x); %soma comulativa
prod(x); %produto dos elementos do vetor
cumprod(x); %produto comulativo
ceil(x); %arredondamento na direo de +inf
fix(x); %arredondamento na direo de zero.
floor(x); %arredondamento na direo de -inf
round(x); %arredondamento para o inteiro mais prximo
mod(x,1); %operao mdulo
max(x); %valor mximo
min(x); %valor mnimo do vetor
mean(x); %mdia do vetor
%% Trigonomtricas
x = 0.3;
sin(x); %seno
cos(x); %cosseno
tan(x); %tangente
acos(x); %arco tangente
asin(x); %arco seno
atan(x); %arco tangente
%% expoentes e logaritimos
exp(x); %expoente na base "e"
log(x); %logaritimo neperiano
sqrt(x); %raiz quadrada
%% nmeros imaginrios
x = 3 + 2i;
i %unidade imaginria
abs(x); %magnitute
angle(x); %ngulo de fase
conj(x); %conjugado
real(x); %parte real
imag(x); %parte imaginaria

Exemplos

% grfico da funo seno


xAxis = 0:0.01:pi;
yAxis = sin(xAxis);
plot(xAxis,yAxis)

% soma aritimtica
aritimeticSum = sum(1:100);
culmulativeAritimeticSum = sum(1:100);

% mdias (observe que a medida que a quantidade de amostras aumenta
% a mdia das amostras se aproxima da mdia da distribuio
randomMean(1) = mean(randn(1,10^0));
randomMean(2) = mean(randn(1,10^1));
randomMean(3) = mean(randn(1,10^2));
randomMean(4) = mean(randn(1,10^3));
randomMean(5) = mean(randn(1,10^4));
randomMean(6) = mean(randn(1,10^5));
scatter(1:6,randomMean)
%a funo randn cria nmeros aleatrios normalmente distribuidos
%com mdia igual a zero e desvio padro de 1

Algumas funes apresentam mltiplas sadas opcionais. Nesse caso necessrio usar uma matriz de
tamanho adequado do lado esquerdo da igualdade.
x = rand(1,10)
[maxValue, maxIndice] = max(x)

Exerccio 2

1 - Escreva em poucas linhas um scipt que calcule a soma geomtrica

2 - Faa um grfico da funo para com espaamentos de pontos

3 - Avalie as seguintes expresses

Exemplo prtico 2
A equao de Manning pode ser usada para calcular a velocidade de gua em um canal aberto
retangular:

Onde V a velocidade (m/s), S a inclinao do canal, n o coeficiente de rugosidade, B a largura


(m) e H a profundidade (m). Os seguintes dados esto disponveis para cinco canais:

Armazene esses valores em uma matriz e escreva um comando no MATLAB para calcular um vetor
coluna que contenha as velocidades respectivas para cada canal.