• Software matlab – características gerais • Apresentação da interface • Variáveis,...

67
Matlab Mini Curso PET 2012

Transcript of • Software matlab – características gerais • Apresentação da interface • Variáveis,...

Page 1: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matlab

Mini CursoPET 2012

Page 2: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Introdução

• Software matlab – características gerais

• Apresentação da interface

• Variáveis, funções e comandos básicos

• Linguagem de programação Matlab

Page 3: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Interface - Current Folder

• Mostra todos os arquivos atuais na pasta Matlab;

Page 4: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Interface - Command History

• Mostra o histórico de todos os comandos realizados na command window

Page 5: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Interface - Workspace

• Mostra todas as variáveis criadas e seus respectivos tipos

Page 6: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Interface - Command Window

• Terminal e janela de realização de comandos individualmente

Page 7: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Interface - Editor

• Janela de criação de programas e funções Matlab

Page 8: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções e comandos básico

• Variáveis sempre definidas como matrizes de dimensão N

Page 9: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos

• Sem necessidade de especificar tipo de variável

• Variável recebe tipo de acordo com valor recebido:

• valor numérico – Double (padrão)• ‘texto’ - char• true, false, comparação - logical• @função – function_handle

Page 10: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos

• Mudar exibição das variáveis numéricas:• File -> Preferences -> Command Window-> Numeric Format

Page 11: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos - funções

Funções são utilizadas da mesma forma que em C#, C++, Java:

• Função com retorno: x = função(parâmetros);Ex: x = cos(3.14) x = -1• Principais funções matemáticas:sin, cos, tan, sind, cosd, tand, asin, acos, atan,

log, log2, log10, sqrt, int, diff,

Page 12: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos

• Criar um programa para criar duas variáveis numéricas (a=4 e b=5), uma outra que recebe a raiz da soma delas (c=sqrt(a+b)) e a seguir, imprimir o resultado no terminal (command window):

a = 4;b = 5;c = sqrt(a+b);display(c);

Page 13: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos - logical

• Variáveis lógicas -> a = true, a = false, a = comparação

• Ex: b = 3;c = 4;a = (b<c);display(a); //a = 1;a = ~adisplay(a); //a = 0;

Page 14: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos - logical

Page 15: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos - logical

Page 16: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos - complexos

• Unidade imaginária: “i” ou “j”• Ex: a = 3 + 4*ia = 3.0000 + 4.0000i• Comandos:imag(a) = 4 real(a) = 3abs(a) = 5 angle(a) = 0.9273

Page 17: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos – i/o

• Funções de saída de dados no terminal:display(x) – exibe o nome da variável e seu

conteúdo. display(‘Texto’) – exibe o texto inserido.

fprintf(‘Texto’) – exibe o texto inserido- Funciona da mesma forma que a função ‘printf’

da linguagem C#- Permite exibir texto e variáveis

simultaneamente.

Page 18: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos - fprintf

• '' Single quotation mark

• %% Percent character

• \\ Backslash

• \a Alarm

• \b Backspace

• \f Form feed

• \n New line

• \r Carriage return

• \t Horizontal tab

• \v Vertical tab

Page 19: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos – i/o

• Função de entrada de dados: input• x = input(‘Texto de orientação: ‘); x receberá um valor numérico ou uma

expressão digitada pelo usuário.Ex: 23.124; 34+4*23; a+b^c+3 (a, b, c = variáveis já declaradas no programa)• x = input(‘Texto de orientação: ‘, ‘s’); x receberá a entrada do usuário como uma

string.

Page 20: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Variáveis, funções ecomandos básicos

Page 21: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes e Programação

• Declaração de vetores e matrizes

• Manipulação

• Funções

Page 22: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes e Programação - Declaração

• Matriz declarada da mesma forma que variáveis, com valores colocados entre colchetes []

• Valores na coluna seguinte são separados por (,)• Valores na linha seguinte são separados por (;)Ex: a = [1, 2, 3; 4, 5, 6; 7, 8, 9]a = 1 2 3

4 5 6 7 8 9

Page 23: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes e Programação - Declaração

• Ferramenta ‘:’Ex: a = 1:5 a = 1 2 3 4 5

a = 0:0.1:1 a = 0.1 0.2 0.3 (...) 0.8 0.9 1a = [1:3 ; 4:6; 7:9] a = 1 2 3

4 5 6 7 8 9

Page 24: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes e Programação - Declaração

• Exercício: Construir uma matriz 3x5, em que a lei de formação da primeira linha é seno, a segunda é cosseno e a terceira é raiz quadrada. Utilize para cada linha o vetor v = 0:0.25:1

• a = 0 0.2474 0.4794 0.6816 0.8415 1.0000 0.9689 0.8776 0.7317 0.5403 0 0.5000 0.7071 0.8660 1.0000

Page 25: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes e Programação - Manipulação

• Acessando elemento: x(linha,coluna) = an

• Acessando linha: x(linha, :) = [a1, a2, a3, ... , an]• Acessando coluna: x(: , coluna) = [a1; a2; a3; ... ; an]• Apagando linha ou coluna:x(linha, :) = [ ]x(coluna,:) = [ ]

Page 26: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes e Programação - Manipulação

Exercício: Criar um programa que calcule a distância entre dois pontos.

P1 = (1,5), P2 = (4,9)

R: d = sqrt(sum(P1-P2));d = 5

Page 27: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes e Programação - Manipulação

• Indexação de elementos:

Page 28: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes e Programação - Manipulação

• Exercício: Resolver o seguinte sistema linear:x + 10y – 12z = 1204x – 2y – 20z = 60-x + y + 5z = 10

Matriz inversa: inv(A)Escalonamento: rref(A)Determinante: det(A)

Resp: x = 340; y = 50; z = 60

Page 29: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes e Programação - Manipulação

• Resolver o sistema:5j*x + (2-6j)*y + 7*z = log5(20)

9*x – pi*y + sqrt(2)*z = 10.569(1/3)*x + sen(30)*y + atan(2)*z = 21.3

Page 30: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes – funções úteis

Page 31: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes – funções úteis

Page 32: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes – funções úteis

Page 33: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes multidimensionais

Page 34: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes multidimensionais

Exercício: Uma empresa apresenta as seguintes tabelas de Produção x Hora x Mês. Salve-as em uma única variável.

A = [30, 15; 20, 36];A(:,:,2) = [12, 17; 9, 15];A(:,:,3) = [21, 41; 45, 39];

Page 35: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matrizes de caracteres

• Strings declaradas com aspas simples: nome = ‘Joao’; sobrenome = ‘da Silva’;• Juntar ambas strings numa matriz:horizontalmente: (matriz 1x12)completo = [nome, sobrenome]; completo = strcat(nome, sobrenome); verticalmente: (matriz 2x8)completo = strvcat(nome, sobrenome);

Page 36: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLAB Arquivos *.m

Podem ser tanto Scripts quanto Functions:

• Script – arquivo contendo simplesmente uma sequência de comandos do MATLAB. Utiliza e cria variáveis do workspace

• Function – faz uso de suas próprias variáveis locais, recebem parâmetros externos e retornam valores.

Page 37: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - if

• Executa teste lógico com expressão. Se resultado = 1 (true) : executa comandosSe resultado = 0 (false) : pula para próxima expressão• Forma geral:if (expressão1)

comandos1;elseif (expressão2)

comandos2;else

comandos 3;end

Page 38: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - if

if (a == 0) display('zero');elseif (a >= b) display('maior'); display(a);elseif (L) fprintf('Valor de a: %f, valor de b = %f\n', a, b); c = a+b; display(c);else c = a+b+4; display(c);end

Page 39: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - if

• Exercício: Fazer um programa que receba do usuário um número e em seguida diga se o número é par ou ímpar. Caso não seja um número inteiro, imprima mensagem de erro.

Page 40: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - for

• Realiza um certo conjunto de comandos numa pré-determinada quantidade de vezes.

• Forma geral:for x = valor

comandos;end

Page 41: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - for

• valor : pode ser vetor ou matriz numéricos• x = vetor: a cada iteração, x receberá o valor

de cada elemento do vetor. Ciclo termina ao chegar no último elemento.

• x = matriz: a cada iteração, x receberá um ‘vetor coluna’, com o valor de cada coluna da matriz. Ciclo termina ao chegar na última coluna.

Page 42: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - for

• Exemplos:for x = 0:0.1:1

soma = soma + x;end

for k = eye(3)display(k);

end

Page 43: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - for

Exercício: • Criar um programa que mostre todos os

divisores de um número recebido do usuário.

• Criar um programa que diga se o número digitado é primo ou não.

Page 44: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - while

• Repetidamente executa comandos até que o valor da expressão seja falso

• Forma geral:while (expressão)

comandos;end• expressão:comparação: a<b, a>b, a==b, a~=bVariável lógica pré-declarada: L = truePs: Parar programa: ctrl+c

Page 45: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - while

• Exemplo:

while (a<=b)a = a*2;b = b + 1;display(a);display(b);

end

Page 46: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - while

• Exercício: Escreva um programa que calcule sucessivamente a raiz quadrada de números introduzidos pelo utilizador até que este indique um número igual a 1. Utilize a função sqrt(x) para calcular a raiz quadrada e input(‘x=?’) para ler os valores. Mostrar ao fim da execução o número de iterações.

Page 47: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - fluxo

• Ferramentas de mudança do fluxo: break – encerra o loop while ou forEx: for k=2:x-1 if (mod(x,k) == 0) break end end continue – pula para a próxima iteraçãoEx: for k = 1:x if (mod(x,k) == 0) fprintf('%.0f, ', k);

continue end

fprintf('\n');end

Page 48: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - switch

• Mecanismo de escolha entre várias opções, baseado em comparação de igualdade.

• Executa o primeiro caso em que a comparação é satisfeita. Imediatamente após executar o caso escolhido, o switch é encerrado.

• Caso nenhum dos casos satisfaça a condição, é executado o ‘otherwise’.

Page 49: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - switch

• Forma geral:switch variável_teste

case ‘valor_1’comandos_1;

case ‘valor_2’comandos_2;

(...)otherwise

comandos_n;end

Page 50: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - switch

• Exemplo:metodo = ‘Bilinear'; switch lower(metodo) case {'linear','bilinear'} display('Método é linear.'); case 'cubico' display('Método é cúbico.'); case 'mais proximo' display('Método é por mais próximo.'); otherwise display('Método desconhecido.');end

Page 51: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLABEstruturas de decisão - switch

• Exercício: criar um programa que, de acordo com a entrada do usuário, escolha entre executar um dos programas criados anteriormente: número primo, divisores, par ou ímpar. Caso a entrada seja inválida, mostrar mensagem de erro.

Page 52: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLAB - Funções

• Formam outro tipo de arquivo *.m• Não podem ser declaradas na Command

Window• Recebem e retornam parâmetros• Fazem uso de variáveis locais próprias• Só é possível chamar funções que estejam

incluídas na pasta aberta na janela “Current Folder”

Page 53: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLAB - Funções

• Declaração:function [saída1, saída2, ...] = nome_função (ent1, ent2, ...)comandos;end

• Utilização:[var1 var2 ...] = nome_função(par1, par2, ...)

Page 54: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLAB - Funções

• saída1, saída2, ... variáveis que receberão os valores que serão retornados pela função

• ent1, ent2, ... variáveis que receberão os parâmetros enviados para a função

• var1 var2 ... variáveis que receberão os valores retornados pela função

• par1, par2, ... parâmetros enviados para a função

Page 55: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLAB - Funções

• Exemplo: Criar uma função que receba o logaritmando e a base e retorne o logaritmo correspondente.

function logarit = logbase (logarit, base)a = log(logarit);b = log(base);logarit = a/b;

Page 56: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLAB - Funções

Exercícios: • Criar uma função para calcular a média de n

valores.• Criar uma função que encontre o mdc

(máximo divisor comum) dentre diversos números.

• Criar uma função que encontre o mmc (mínimo múltiplo comum) entre n números.

Page 57: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLAB - Funções

• Faça um script que leia um vetor com as notas de uma turma e que calcule o seguinte:

a) Percentagem das notas positivas (> = 80);b) Percentagem das notas negativas (< 40 );c) Média das notas positivas;d) Média das notas negativas;e) Média geral das notas.Use como vetor de notas:[ 55 75 93 100 86 15 23 39 81 78.5 63 0 84 67 71 10

89 9 72 51.5]

Page 58: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Programação MATLAB - Funções

• Faça um script que leia um vetor com as notas de uma turma e que calcule o seguinte:

a) Percentagem das notas positivas (> = 80);b) Percentagem das notas negativas (< 40 );c) Média das notas positivas;d) Média das notas negativas;e) Média geral das notas.Use como vetor de notas:[ 55 75 93 100 86 15 23 39 81 78.5 63 0 84 67 71 10

89 9 72 51.5]

Page 59: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Gráficos 2D – função plot

• plot(a, b) desenha um gráfico 2D com os vetores ‘a’ e ‘b’, de mesmo tamanho, associando cada par de elementos de mesmo endereço a um ponto do gráfico.

• plot(x1, y1, x2, y2, ...) desenha várias linhas no mesmo gráfico

• ‘Show plot tools and dock figures’ ferramenta de edição do gráfico desenhado

Page 60: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Gráficos 2D – função plot

• Exemplo:x = -2:0.01:2;y = x.^2;plot(x, y);

Page 61: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Gráficos 2D – função plot

• Exemplo:x = -pi:0.01:pi;y1 = sin(x);y2 = cos(x);plot(x, y1 ,x , y2)

Page 62: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Gráficos 2D – função plot

x=1:1000; for k=1:5 y(k,:)=k*log(x);endplot(x,y)

Page 63: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matemática simbólica

• Cálculos realizados apenas com símbolos matemáticos

• Possibilidade de utilizar funções como diff(derivada), int(integral), fourier(transformada de fourier), etc

• syms x cria uma variável simbólica x• X = sym(‘ [a,b;c,d]’) cria uma matriz

simbólica X contendo as variáveis simbólicas a, b, c, d

Page 64: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matemática simbólica - declaração

• Exemplo:syms x;x = x^2;y = int(x); % y = x^3/3y = int(x,1,3); % y = 26/3y = diff(x); % y = 2*x

Page 65: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Matemática simbólica - declaração

• Exemplo:M = sym(‘[a,b;c,d]’);M2 = 2*M;[ 2*a, 2*b][ 2*c, 2*d]d = det(M2);4*a*d - 4*b*c

Page 66: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Estruturas heterogêneascélulas (cell)

• Capazes de armazenar a maioria das estruturas conhecidas no MATLAB em uma única variável:

- números - caracteres - strings - matrizes numéricas - matrizes de caracteres• Útil para organizar e armazenar estruturas de

diferentes tipos.• Facilidade de manipular strings.

Page 67: • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab.

Estruturas heterogêneascélulas (cell)

• Declaração:A = { ... }‘ , ’ – separa colunas‘ ; ’ – separa linhas• Manipulação:A(x,y) = (...) - acessar linha ‘x’, coluna ‘y’

Ps: ferramentas de acesso de elementos funciona semelhante ao de matrizes normais.