Minicurso MATLAB Básico
Palestrantes
Rafael Rodrigues de Araujo
Marco Aurélio Amorim Biazollo
Introdução
MATLAB (MATrix LABoratory) trata-se de um software interativo de alta
performance voltado para o cálculo numérico. O MATLAB integra
análise numérica, cálculo com matrizes, processamento de sinais e
construção de gráficos em ambiente fácil de usar onde problemas e
soluções são expressos somente como eles são escritos
matematicamente, ao contrário da programação tradicional.
Layout

Command Window
É a janela dos cálculos e da programação. Nesta janela,
são inseridos os dados, que são interpretados pelo
programa, e então os resultados são retornados.
Caso o usuário queira, esta janela também mostra
o desenvolvimento dos cálculos realizados,
mostrando os valores de cada variável,
após terem sido executadas as ações
referentes a elas.
Layout

Editor
É a janela onde são criados códigos que podem ser
salvos como arquivos do MATLAB. É a janela mais
utilizada, uma vez que nela podem ser digitados
códigos completos para só depois serem rodados
na Command Window. Além disso, com o modo Debug,
que será explicado mais adiante, pode-se rodar
o código linha por linha, para ver todos os passos
realizados pelo programa.
Layout

Command History Window
Esta janela mostra todos os comandos inseridos na
Command Window recentemente, classificados por
ordem cronológica. Ao apertar a seta pra cima do
teclado na Command Window, visualizamos os
comandos armazenados na Command History Window.
Layout

Workspace
O Workspace mostra todas as variáveis utilizadas
recentemente e seus respectivos tipos e valores.
Com ele, é possível verificar se alguma variável
teve seu valor modificado quando o código foi
rodado, e assim encontrar eventuais erros na
programação.
Layout

Figure Window
A Figure Window é a janela que exibe gráficos. Estes
podem ser criados em duas ou três dimensões. Mais
adiante, será explicado como plotar gráficos em duas
dimensões.
Help
O comando help consiste em uma ferramenta de ajuda sobre todas as funções,
comandos e operadores existentes no MATLAB. Para acessar, basta digitar na
Command Window:
>>help função/comando/operador
A partir do comando dado, aparecem informações sobre o termo pesquisado.
Primeiramente, é fornecida uma definição. Em seguida, são dados exemplos de
uso e todas as possibilidades de aplicação, bem como informações sobre tópicos
relacionados à pesquisa.
Dados

Salvando um arquivo
É possível salvar um código utilizando o editor com a extensão ‘.m’. Basta ir em
File>New>M-File.

Executar um arquivo
Para executar existe duas formas. Sendo uma delas selecionar o script que deseja
executar e apertar F5, a outra basta digitar o nome do arquivo na janela de
comando e apertar enter.
Dados

Criando Dados
Declarar uma variável no MATLAB é muito simples, basta digitar o nome desejado
e o valor a ser atribuído a essa variável. Apesar de simples deve-se tomar alguns
cuidados. Exemplo:

O nome da variável deve sempre começar com uma letra:
A = 10.

Também não e aconselhável usar nomes de funções e variáveis embutidas:
Ans, i, j e outros.
Dados

Criando Dados

O MATLAB diferencia entre maiúscula e minúscula:
A ≠ a.

Palavras reservadas não podem ser utilizadas como variável:
clear, clc, if e etc.

Caracteres especiais e espaços não são aceitos, podendo utilizar somente ‘_’:
A_B = 6.
Funções Format
A função embutida format permite especificar o formato de apresentação de
números reais na janela de comando.
Exemplo:
>>format long
>>pi
>>format short
>>pi
Funções Format
A função embutida format permite também controlar o espaço entre linhas na
janela de comando. As opções são loose (padrão) e compact.
Exemplo:
>>format loose
>>2^3
>>format compact
>>2^3
Operações com escalares
Todas as operações entre escalares são feitas de forma simples. São realizadas da
esquerda para a direita, obedecendo à ordem: potenciação,
divisão/multiplicação, adição/subtração.
Operações
Adição
Subtração
Multiplicação
Divisão
Potenciação
Símbolo
+
*
/ ou \
^
Funções Embutidas

Funções Matemática:
>>sqrt(x) % raiz quadrada de x
>>exp(x) % e^x
>>abs(x) % valor absoluto de x
>>log(x) % lnx
>>factorial(x) % x!
Funções Embutidas

Uteis
>>clc % apaga as linhas de Comando
>>clear all % limpa os valores das variáveis
>>% -> comentário
>>whos(x) % Fornece informações sobre a variável x
>>isletter(x) % verifica se e uma letra caso sim retorna 1 senão 0
>>isnumeric(x) % verifica se e um numero caso sim retorna 1 senão 0
>>sum(x) % soma os elementos de um vetor
Funções Embutidas

Funções Trigonométricas:
>>sin(x) % sen(x) com x em radiano
>>cosd(x) % cos(x) com x em grau
>>atan(x) % arctg(x) com x em radiano
>>cosh(x) % cosh(x) com x em radiano
Funções Embutidas

Funções de Arredondamento:
>>round(x) -> arredonda para inteiro mais próximo
>>fix(x) -> arredonda para inteiro menor
>>ceil(x) -> arredonda para inteiro maior
>>rem(x,y) -> retorna o resto da divisão de x por y
>>sign(x) -> retorna 1 se x>0, -1 se x<0 e 0 se x=0
>>floor(x) -> arredonda para o inteiro negativo menor
Funções Embutidas

Funções para Cálculo:
>>syms t % cria uma variável simbólica x
>>diff(t) % deriva a função entre parênteses
>>int(t) % integra a função entre parênteses
>>F = laplace(f) % calcula a transformada de f, sendo f = 2*exp(-3*t)
>>ilaplace(F) % calcula a transformada de F
>>dsolve('Dy=-a*y') % retorna a função y(t)
>>[autovetor autovalor] = eig(M) % retorna os autovetores e autovalores de M
Casting
Uma forma de mudar o tipo de uma variável, não é uma transformação.
>>A = 2
>>int(A)
>>int8(A)
>>float(A)
>>char(A)
>>boolean(A)
Transformações de variáveis
O MATLAB possui alguma funções embutidas de transformação.
>>A = 2
>>num2str(A) % transforma um número em string
>>str2num(A) %transforma uma string em um número
Vetores

Formas de criar um vetor:
>>Vetor_linha = [1 2 4 3] ou [1, 2, 4, 3]
>>Vetorp = xi:p:xf
>>Vetor_coluna = [4; 3; 5; 2]
>>VetorPA = [a1,r,an]
>>Vetorif= linspace(xi,xf,n)
Vetores

Operações com vetores:
Para acessar um elemento especifico de um vetor é necessário informar o nome
da variável e o índice dentro do parêntese exemplo:
>>Vet(2)
Com isso também se pode alterar o valor do elemento da variável :
>>Vet(2) = 5 %Aqui esta sendo atribuído o valor 5 no índice 2 do vetor Vet
As operações aritméticas entres vetores são feitas de forma comum:
>>Veta+Vetb
>>find(vet>2) % retorna o índice do elemento no vetor
>>vet = [veta vetb] % contatena dois vetores
Vetores
Exemplos:
Tendo va = [2;3;4;6] e vb = [1;3;4;2]. Crie um vetor linha que seja a
concatenação de va e vb.
Com os mesmos va e vb, crie um vetor que onde os elementos seja vai/vbi.
Crie um vetor contendo os dois últimos elementos de va e vb.
Vetores
Resposta:
>>V = [va;vb]
>>v = va./vb
>>v = [va(3:4);vb(3:4)]
Matrizes

Criar uma matriz:
>>M = [a11 a12;a21 a22]
>>zeros(m,n) % matriz de 0 mxn
>>ones(m,n) % matriz de 1 mxn
>>eye(n) % matriz identidade nxn
Matrizes

Operações com matrizes:
Para acessar um elemento especifico de uma matriz é necessário informar o
nome da variável e os índices dentro do parêntese exemplo:
>> M(2,3)
Com isso também se pode alterar o valor do elemento da variável :
>>M(2,3) = 5 %Aqui esta sendo atribuído o valor 5 na linha 2 coluna 3
As operações aritméticas entres vetores são feitas de forma comum:
>>Ma+Mb
Matrizes

Operações com matrizes:
>>det(Ma+Mb) % determinante de Ma+Mb
>>inv(M) % matriz inversa de M
>> Mt = M’ % transposta de M
>> mat(:,2) = [] % apaga os valores da coluna 2
>>isequal(Ma, Mb) % retorna 1 se forem iguais e 0 se diferentes
Matrizes
Exemplos com matrizes:
Criar uma matriz 3x3 utilizando passo igual a 1 com o operador ‘:’.
Apagar a ultima linha da matriz gerada e multiplicar a segunda linha por 2.
Mostrar o índice dos elementos múltiplos de 2 da matriz acima.
Matrizes
Resposta:
>> M = [1:3;4:6;7:9]
>> M(3,:) = []
>> M(2,:) = M(2,:)*2
>> [lin col]=find(mod(M,2)==0)
Função

Criar uma função:
>>edit -> abre o editor
Dentro do editor incia-se a função desta forma:
function [out] = nomef(in)
%function -> comando para dizer que uma função
%out -> parâmetro de saída
%nomef -> nome da função
%in -> parâmetro de entrada
Obs.: O script deve ter o mesmo nome da função ao salvar.
Deve-se indicar a pasta onde o script foi salvo.
Função

Entrada de dados:
>>num = input(‘Digite seu numero preferido: ’)
>>nome = input(‘Digite seu nome: ’,’s’) % e necessário colocar o ‘s’ para char e strings
Saída de dados:
>>disp(‘Olá Mundo’)
>>fprintf(‘Bem vindo %s \n’,nome) % semelhante ao printf do C
Função
Exemplo:
%Este é o programa principal para o cálculo da área do círculo
raio = leraio;
area = calcarea(raio);
exibearea(raio,area)
function raio = leraio
% Esta função solicita ao usuário a digitação do raio
disp('Quando solicitado, informe o valor do raio em cm.')
raio = input('Digite o raio: ');
Função
function area = calcarea(raio)
% Esta função calcula a área de um círculo
area = pi * raio * raio; % ou tb area = pi*power(raio,2);
function exibearea(raio,area)
% Esta função exibe a área do círculo
fprintf('Para um círculo de raio igual a %.2f cm\n',raio)
fprintf('a área equivale a %.2f cm quadrados.\n',area)
Condicional

Uso do if:
if condição
ação
end
Uso do if-else:
if condição
ação1
else
ação2
end
Condicional

Uso do if-else aninhadas:
Condicional
switch expressão
case caso1
ação1
case caso2
ação2
case caso3
ação3
...
otherwise
açãon
end
Estruturas de Repetição

Uso do for:
for variável_de_controle = faixa
corpo_do_laço
end
Exemplo:
>> for i = 1:5
fprintf('%d ',i)
end
Estruturas de Repetição
Uso do while:

while condição
ação
end
Exemplo:
a = 1; b = 15;
while a<b,
clc
a = a+1
b = b-1
pause(1) % e feito uma pausa de 1 segundo
end
disp('fim do loop')
Estruturas de Repetição
Exemplo:
% Este é o programa principal para o cálculo da área do retângulo
[base,altura] = ledimensoes;
exibearearetangulo(base,altura)
function [b,h] = ledimensoes
% Esta função solicita ao usuário a digitação da base e da altura
b = input('Digite a base: ');
h = input('Digite a altura: ');
Estruturas de Repetição
function exibearearetangulo(bas,alt)
% Esta função exibe a área do retângulo.
% Ela chama uma subfunção para calcular a área.
area = calcarearetangulo(bas,alt);
fprintf('Para um retângulo de base %.2f e altura %.2f\n',bas,alt)
fprintf('a área equivale a %.2f.\n',area)
function area = calcarearetangulo(bas,alt)
% Esta subfunção calcula a área do retângulo.
area = bas * alt;
Estruturas de Repetição
escolha = eopcoes;
while escolha ~= 3 && escolha ~= 0
switch escolha
case 1
raio = leraio;
area = calcarea(raio);
exibearea(raio,area)
case 2
[base,altura] = ledimensoes;
exibearearetangulo(base,altura)
end
escolha = eopcoes;
end
Estruturas de Repetição
function escolha = eopcoes
% Exibe o menu de opções
escolha = menu('Escolha uma opção',‘Área Circulo',‘Área Retângulo',...
'Sair do programa');
Manipulação de Arquivo em Disco

Gravar em disco:
>>dados = M+M’
>>save testfile.dat dados –ascii

Leitura do disco:
>>load testfile.dat
>>disp(testfile)

Regravação em disco:
>>Mat = eye(3);
>>save testfile.dat Mat –ascii -append
Gráficos

Como plotar o gráfico:
Primeiramente, deve-se criar dois vetores que armazenem, respectivamente, os valores
das variáveis “X” e “Y” que serão os eixos do gráfico. Então, o comando a ser dado é:
>> plot(x,y,’Opções de Estilo’)

Plotando uma função:
Uma outra maneira para se plotar um gráfico no MATLAB é usando o comando “fplot”. Ele
plota diretamente uma função dada. Seu formato é:
>> fplot(‘função’,[intervalo de valores], opções de estilo);
Exemplo:
>> fplot('cos(x)',[0,pi],'green')
Gráficos
Gráficos

Mais de um gráfico na mesma janela:
Figure: esse comando abre uma nova Figure Window, onde o próximo gráfico plotado será
mostrado.
>>figure
Hold on / Hold off : o comando hold on fixa a última Figure Window gerada, e todos os
plots a partir dele até o comando hold off são gerados na mesma janela. Ou seja, ele
possibilita que várias curvas sejam mostradas num mesmo gráfico.
>>hold on
>>plot(x,y)
>>plot(w,z)
>>hold off
Gráficos
Subplot: o comando subplot permite que vários gráficos sejam mostrados separadamente
numa mesma Figure Window. Com ele, aparecerão duas ou mais curvas, cada qual com
seus eixos e escalas, lado a lado horizontalmente e/ou verticalmente, numa mesma
janela.
>>plot(x,y)
>>subplot(a,b,p)
>>plot(w,z)
Gráficos
Exemplo:
>> x = 1:0.01:10;
>> y1 = square(x);
>> y2 = sin(x);
>> subplot(2,1,1)
>> plot(x,y1)
>> subplot(2,1,2)
>> plot(x,y2)
Gráficos

Comandos auxiliares:
Title: O comando title insere um título à última Figure Window aberta.
>>title(‘titulo desejado’)
Xlabel: O comando xlabel permite que o eixo das abscissas do gráfico seja identificado.
>>xlabel(‘identificação abscissas’)
Ylabel: O comando ylabel permite que o eixo das ordenadas do gráfico seja identidifcado.
>>ylabel(‘identificação ordenadas’)
Text: O comando text insere um texto digitado pelo usuário numa determinada posição.
>>text(x,y,’texto desejado’)
Gráficos
Exemplo:
>> x=[ 4 8 12 16];
>> y=[ 1 2 3 4];
>> plot(x,y,'green')
>> xlabel('x');
>> ylabel('y');
>>title(‘Grafico Simples’);
>>axis([0 16 1 4]);
>> text(8,2,'(8,2)')
Gráficos
Exemplo:
>> syms t;
>> f = 2*t^2+2*t+1
>> ezplot(f) %plota uma expressão alfanumérica
Gráficos
Exemplo:
>>clf %Limpa os gráficos anteriores
>>x = 0:0.1:2;
>>y1 = exp(x);
>>y2 = sqrt(exp(x));
>>plot(x,y1,'r')
>>hold on
>>plot(x,y2,‘b')
>>grid on % Coloca grade
>>legend('y1=exp(x)','y2=sqrt(exp(x))') %Inseri uma legenda
Download

Minicurso MatLab Básico