iniciação ao matlab eugênio silva e adriano cruz
TRANSCRIPT
![Page 1: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/1.jpg)
Iniciação ao MatLab
Eugênio SilvaE
Adriano Cruz
![Page 2: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/2.jpg)
Introdução
![Page 3: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/3.jpg)
Introdução• MatLab – Matrix Laboratory (Universidades
de Stanford e Novo México - 1970)
• originalmente escrito para trabalhar com matrizes e vetores
• evoluiu ao longo do anos até se tornar uma
ferramenta de ampla abrangência.
![Page 4: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/4.jpg)
Introdução• o MatLab é uma poderosa ferramenta
matemática e uma linguagem de programação de alto-desempenho para a computação científica
• integra cálculos matemáticos, visualização e programação em um ambiente interativo
• é de fácil utilização
![Page 5: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/5.jpg)
Exemplo – transpor uma matriz
• Pascal
var a, b : array [1..3, 1..3] of integer; i, j : integer;begin . . . for i = 1 to 3 for j = 1 to 3 b(j,i) := a(i,j); end; end;end.
• MatLab
>> a = [1 2 3; 4 5 6; 7 8 9]a = 1 2 3 4 5 6 7 8 9
>> b = a’b = 1 4 7 2 5 8 3 6 9
![Page 6: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/6.jpg)
Introdução
• o elemento de dados básico é uma matriz
• matrizes e vetores são manipulados com mais facilidade e rapidez que em programas escritos em linguagens não-interativas como Pascal, C ou Fortran
![Page 7: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/7.jpg)
Introdução
• Linha de comandos – é possível usar o matlab através de comandos emitidos a partir de linha de comandos
• scripts – arquivos que contém comandos matlab
![Page 8: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/8.jpg)
Introdução
• toolboxes - bibliotecas de funções que permitem a resolução de classes particulares de problemas
• simulink - acessório que acrescenta uma interface de diagramas de blocos e recursos de simulação real aos demais recursos numéricos, gráficos e de linguagem
![Page 9: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/9.jpg)
Aplicações
• matemática e computação
• desenvolvimento de algoritmos
• modelagem, simulação e prototipação
• análise de dados, exploração e visualização
• gráficos científicos em duas e três dimensões
![Page 10: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/10.jpg)
Help• On line
• Linha de comandos - – help– help elfun– help abs
• demos - – demo
![Page 11: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/11.jpg)
Comandos
![Page 12: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/12.jpg)
Operações Elementares
>> 4 + 6 – 2
ans =
8
>> 4 * 2 + 6 * 5 + 2 * 9
ans =
56
>> 25 / 5 + 5 \ 25
ans =
10
>> 3 ^ 2 * 2 ^ 2 + 2
ans =
38
![Page 13: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/13.jpg)
Prioridades• Parênteses• Potência
– 3 * 2 ^ 3 = 24• * e /
– Resolvendo da esquerda para direita– 8 / 4 * 3 = 6
• + e -– Resolvendo da esquerda para direita
![Page 14: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/14.jpg)
Números• Inteiros: 32, -12345• Reais: 3.1789, -23.0, 1.0e-3• Complexos: 3.2 – 23.5i • Inf: Infinito (resultado da divisão por 0)• NaN: Not a number 0/0• Contas são feitas com 15 dígitos
aproximadamente• Comando format controla impressão dos
resultados.
![Page 15: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/15.jpg)
Definição de Variáveis>> a = 10a =
10
>> b = 20; O ‘;’ evita que o resultado apareça na tela.
>> c = 1 + 2i ou c = 1 + 2jc =
1.0000 – 2.0000i
![Page 16: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/16.jpg)
Nomes de Variáveis• Combinações de letras e números,
começando com letra
– n1, ab, temp• Nomes especiais
– eps = 2.220446049250313e-16 (o menor número tal que 1 + eps é indistinguível de 1)
– pi
– i, k
![Page 17: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/17.jpg)
Variáveis Pré-definidas• ans: váriavel padrão usada para resultados
de expressões do tipo– >> 3 + 5
• pi
• i ou j: igual a raiz quadrada de -1
• realmax: maior número real utilizável
– 1.797693134862316e+308
• realmin: menor número real utilizável
– 2.225073858507201e-308
![Page 18: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/18.jpg)
Variáveis Pré-definidas
• nargin: número de argumentos de entrada
• nargout: número de argumentos de saída
![Page 19: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/19.jpg)
Funções Elementares• abs(x) valor absoluto de x
• sin(x) seno de x
• asin(x) arc seno x
• cos(x) co-seno x
• acos(x) arc co-sen x
• tan(x) tangente x
• exp(x) e elevado a x
![Page 20: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/20.jpg)
Funções Elementares• log(x) log inverso de exp(x)
• log10(x) log base 10 de x
• gcd(x,y) mdc de x e y
• lcm(x,y) mmc entre x e y
• max(x) máximo de x
• min(x) mínimo de x
• inv(x) matriz inversa de x
• ...
![Page 21: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/21.jpg)
Espaço de Trabalho>> who lista variáveis na memória
>> whos lista variáveis detalhadamente
>> clear apaga variáveis da memória
>> save salva variáveis em arq .mat
>> load carrega variáveis de um .mat
>> format formato de apresentação dos resultados
![Page 22: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/22.jpg)
Comandos do SO>> dir ou ls arquivos do diretório
>> cd ou pwd diretório corrente
>> cd . . diretório acima do corrente
>> cd \ diretório raiz
>> delete <arquivo> apaga arquivo
>> edit <arquivo> abre arquivo para edição
>> type <arquivo> mostra o conteúdo do arquivo
>> quit ou exit sai do ambiente
![Page 23: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/23.jpg)
Vetores
![Page 24: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/24.jpg)
Vetores em linha>> x = [ 1 3 5 ];
>> lenght(x)
ans =
3
>> y = [ 3 4 5 ];
>> x + y
ans =
4 7 10
>> z = 3 * y
ans =
9 12 15
![Page 25: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/25.jpg)
Vetores>> x = [ 1 3 5 ];
>> v1 = [ 3 4 5 6];
>> x + v1
??? Error using ==> plus
Matrix dimensions must agree.
![Page 26: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/26.jpg)
Gerando vetores
>> x = [0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1] .* pi
ou
>> x = (0:0.1:1).* pi
ou
>> x = linspace(0,pi,11)
>> y = sin(x)
![Page 27: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/27.jpg)
Gerando vetores• linspace(x1,x2) gera um vetor linha com 100 pontos
igualmente espaçados.
• linspace(x1,x2,n) gera vetor com n pontos entre x1 e x2
>>linspace(0,pi,11)
![Page 28: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/28.jpg)
Gerando vetores
• a : b : c gera vetor começando em a, incrementando por b, até chegar em c. Não gera além de c.
>> 0:0.1:1
ans =
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
• a : b gera vetor começando em a até chegar em b incrementando por 1
![Page 29: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/29.jpg)
Manipulando vetores• x = (0:0.1:1)*pi
x = 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416
• x(6) = 1.5708
• x(1:5) = 0 0.3142 0.6283 0.9425 1.2566
• x(7:end) = 1.8850 2.1991 2.5133 2.8274 3.1416
• x(3:-1:1) = 0.6283 0.3142 0
• x(2:2:7) = 0.3142 0.9425 1.5708
![Page 30: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/30.jpg)
Manipulando vetores, matrizesx = 0 0.3142 0.6283 0.9425 1.2566
1.5708 1.8850 2.1991 2.5133 2.8274 3.1416
• x([8 2 9 1]) = 2.1991 0.3142 2.5133 0
• z = x[(2:5) 4 5 7] = 0.3142 0.6283 0.9425 1.2566 4.0000 5.0000 7.0000
• w = [ x y ] %vetor linha
• k = [ x; y ] % matriz com duas linhas
![Page 31: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/31.jpg)
Manipulando vetores, matrizes• A = [1 2 3; 4 5 6; 7 8 9];
• A(3,3) = 9
• A(2, 2:3) = 5 6
• A(3,:) = 7 8 9 % : todas as colunas
![Page 32: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/32.jpg)
Manipulando vetores, matrizes• B = A(3:-1:1, : )
• B = [7 8 9; 4 5 6; 1 2 3]
• C = [A B( : , [1 3])]– C = [1 2 3 7 9; 4 5 6 4 6; 7 8 9 1 3]
• B(:,2) = [ ]– B = [7 9; 4 6; 1 3]
• B = A(:,[2 2 2 2])– B = [2 2 2 2; 5 5 5 5; 8 8 8]
![Page 33: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/33.jpg)
Operações Especiais>>eye(linhas,colunas)
Cria matriz identidade
>> det(m)
Determinante de m
>> zeros(n1,n2,n3,...)
Matriz de zeros
>> inv(m)
Inversa de m
>> ones(n1,n2,...)
Matriz de uns
>> m’
Transposta de m
>> rand (n1,n2,...)
Matriz de rand entre 0 e 1.0
![Page 34: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/34.jpg)
Matrizes
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
matriz(10) ou matriz(2,3)
![Page 35: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/35.jpg)
Busca de Sub-Matrizes>> x = -3:3
x =
-3 -2 -1 0 1 2 3
>> k = find(abs(x) > 1)
k =
1 2 6 7
>> y = x(k)
-3 -2 2 3
>> A= [1 2 3; 4 5 6; 7 8 9]
A = 1 2 3
4 5 6
7 8 9
>> [ i , j ] = find(A > 5)
i = 3 j = 1
3 2
2 3
3 3
![Page 36: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/36.jpg)
Dimensões de Vetores e Matrizes
whos lista as variáveis e suas dimensões
s = size(A) retorna o número de linhas e colunas de A
[x,y] = size(A) x contém o núm de linhas e y o de colunas
x = size(A,1) retorna o número de linhas de A
y = size(A,2) retorna o número de colunas de A
n = length(A) retorna max(size(A))
![Page 37: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/37.jpg)
Operações com Vetores e Matrizes
a = [a1 a2 ... an], b = [b1 b2 ... bn], c = <um escalar>
adição a escalar a + c = [a1 + c ... an + c]
multiplicação por escalar a * c = [a1* c ... an* c]
soma de vetores a + b = [a1 + b1 ... an + bn]
multiplicação de vetores a .* b = [a1 *b1 ... an *bn]
![Page 38: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/38.jpg)
Operações com Vetores e Matrizes
a = [a1 a2 ... an], b = [b1 b2 ... bn], c = <um escalar>
Divisão vetores (a/b) a ./ b = [a1 /b1 ... an /bn]
Divisão vetores (b/a) a .\ b = [a1\b1 ... an\bn]
Potenciação vetorial c.^a = [c^a1 ... c^an]
![Page 39: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/39.jpg)
Alguns exemplos
• x = [ 1 2 3 4], y = [ 1 1/2 1/3 1/4];• x .* y % dot product
1 1 1 1• x * y' % scalar product
4• sqrt( x * x') %Comprimento vetor
5.4722
![Page 40: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/40.jpg)
Mais exemplos: resolução de sistemas de equações
• 2x1- x2 = 1
• X1 - 2x2 + x3 = 0
• - x2 + 2x3 = 1
• Ax = b; x = A-1b; x = A \ b
![Page 41: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/41.jpg)
Mais exemplos: resolução de sistemas de equações
• A = [ 2 -1 0; 1 -2 1; 0 -1 2];
• b = [1; 0; 1]• Em notação matricial Ax = b• x = A-1b;• X = inv(A) * b;• x = A \ b;
![Page 42: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/42.jpg)
Gráficos
![Page 43: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/43.jpg)
Gráficos Bidimensionais
>> x = linspace(0, 2 * pi, 30);
>> y = sin(x);
>> z = cos(x);
>> plot(x,y,x,z)
![Page 44: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/44.jpg)
Títulos, Rótulos e Grids
>> x = linspace(0, 2 * pi, 30);
>> y = sin(x);
>> plot(x,y,x,z);
>> title('Grafico de y = sen(x)');
>> xlabel('Eixo x');
>> ylabel('Seno(x)');
![Page 45: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/45.jpg)
Legendas>> x = linspace(0, 2 * pi, 30);
>> y = sin(x);
>> z = cos(x);
>> plot(x,y,x,z);
>> legend('curva sen', 'curva cos');
![Page 46: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/46.jpg)
Linhas: Estilos e Cores
>> x = linspace(0, 2 * pi, 30);
>> y = sin(x);
>> z = cos(x);
>> subplot(2,1,1)
>> plot(x,y,’go’)
>> subplot(2,1,2)
>> plot(x,z,’r*’)
![Page 47: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/47.jpg)
Hold• Comando plot limpa a janela do gráfico
antes de desenhar o novo gráfico• Isto não é conveniente se desejarmos
adicionar outros gráficos no futuro• Usar hold para evitar limpeza da janela• plot(x,y,'w-'), hold on• plot(x,y,'gx'), hold off• hold off não limpa a janela (usar clf)
![Page 48: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/48.jpg)
Subplots• A janela do gráfico é dividida em uma
matriz m x n de pequenas janelas.
• As janelas são contadas entre 1 e m x n
• Cada subfigura é tratada como uma figura podendo ter mais de uma curva, estilos, legendas, cores etc
![Page 49: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/49.jpg)
Subplotsx = linspace(0,2*pi,30);
y1 = sin(x);
y2 = sin(2*x);
y3 = sin(3*x);
y4 = sin(4*x);
subplot(221), plot(x,y1), legend('y = sen(x)');
subplot(222), plot(x,y2), legend('y = sen(2*x)');
subplot(223), plot(x,y2), legend('y = sen(3*x)');
subplot(224), plot(x,y4), legend('y = sen(4*x)');
![Page 50: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/50.jpg)
Subplots
![Page 51: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/51.jpg)
Gráficos Bidimensionais
>> x = -2.9 : 0.2 : 2.9;
>> y = randn(5000,1);
>> hist(y,x)
![Page 52: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/52.jpg)
Textos Formatados• Possível aumentar ou diminuir fontes• Alguns comandos latex podem ser
usados• É possível obter os valores de qualquer
propriedade através do “handle” da figura
• handle = plot(x,y);• get (handle, 'markersize');
![Page 53: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/53.jpg)
Controlando os eixos• Uma vez que um gráfico foi criado é
possível mudar a excursão dos valores x e y mostrados na figura.
• clf, N=100; h=1/N; x = 0:h:1;• y = sin(3*pi*x), plot(x,y);• axis([-0.5 1.5 -1.2 1.2]), grid;
![Page 54: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/54.jpg)
Controlando os eixos
![Page 55: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/55.jpg)
Gráficos Tridimensionais
>> t = 0 : pi / 50 : 10 * pi;
>> plot3(sin(t),cos(t),t);
>> title(‘hélice’)
>> xlabel(‘sen(t)’)
>> ylabel(‘cos(t)’)
>> zlabel(‘t’)
>> grid
![Page 56: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/56.jpg)
Gráficos Tridimensionais
%z = f(x,y)
x = -0.5*pi:0.1:0.5*pi;
y = x; % minusculas
[X Y] = meshgrid(x,y);
Z = sin(2*X)+sin(3*Y); % maiusculas
mesh(X,Y,Z);
title('Ex de graf 3D');
![Page 57: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/57.jpg)
Gráficos Tridimensionais
![Page 58: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/58.jpg)
O mesmo com surf
![Page 59: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/59.jpg)
O mesmo com surfl
![Page 60: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/60.jpg)
Gráficos Tridimensionais
>> surf(peaks)
![Page 61: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/61.jpg)
Scripts
![Page 62: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/62.jpg)
Arquivos M (Scripts)
• Armazenam uma sequência de comandos em um arquivo texto que é executado a partir do prompt
• Úteis quando o número de comandos a serem executados é grande, ou caso seja necessário alterar os valores das variáveis e re-executar alguns comandos
• Devem ter a extensão .m
![Page 63: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/63.jpg)
Scripts em Matlab• Scripts não aceitam e não retornam
argumentos. • Scripts podem alterar as variáveis do espaço
de trabalho (workspace) atual. • Scripts podem conter comandos que
interagem com o usuário e/ou arquivos. • Use scripts para:
– Automatizar a execução de uma seqüência de comandos frequentemente utilizados
– Documentar os passos de um processo
![Page 64: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/64.jpg)
Scripts em Matlab%Exemplo de script%clear all; x = 0:0.01:2*pi; eixos = [0 2*pi -2 +2];y1 = sin(x);y2 = cos(x);y3 = tan(x);y4 = zeros(size(x));
plot (x,y1,x,y2,x,y3,x,y4,'k');axis (eixos);legend('Seno', 'Coseno','Tangente');title('Graficos de seno, coseno e tangente.');xlabel('Angulos');ylabel('Seno, coseno e tangente');
![Page 65: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/65.jpg)
Scripts em Matlab
![Page 66: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/66.jpg)
Scripts
• Para executar um script armazenado em um arquivo digite o nome do arquivo sem o .m
• O que aparece na tela são os resultados da execução dos comandos.
• echo on faz com que os comandos apareçam antes da execução.
• echo off faz com que os comandos deixem de aparecer.
![Page 67: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/67.jpg)
Alguns Comandos e Funções
![Page 68: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/68.jpg)
Estrutura Condicional – if
>> if expressão_1
comandos_1;
elseif expressão_2
comandos_2;
else
comandos_3;
end
![Page 69: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/69.jpg)
Operadores Relacionais e Lógicos
< menor que
<= menor ou igual
> maior que
>= maior ou igual
= igual
~= diferente
& e
| ou
~ não
![Page 70: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/70.jpg)
Funções Relacionais e Lógicas
xor(x,y) ou exclusivo
ischar(x) 1 se x é um vetor de caracteres
isequal(x,y) 1 se x e y são iguais
isempty(x) 1 se x é vazio
ismember(x,y)
1 se os elementos de x pertencem a y
isstruct(x) 1 se x é uma estrutura
![Page 71: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/71.jpg)
Estrutura Condicional – switch - case
>> switch expressão
case teste_expressão_1
comandos_1
case teste_expressão_2
comandos_2
otherwise
comandos_3
end
![Page 72: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/72.jpg)
Laços de Repetição – for / while
>> for x = vetor
comandos;
end
>> while expressão
comandos;
end
![Page 73: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/73.jpg)
Laços de Repetição
clf;x = -2:0.1:2;hold on;for n = 1:8 plot(x,n*x .*x );endhold off;
![Page 74: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/74.jpg)
Laços de Repetição
![Page 75: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/75.jpg)
Otimização de Código
• o laço de repetição
for i = 0:999 x(i+1) = sin(2*pi*i/100); end
• pode ser substituído por
x = sin(2*pi*[0:999]/100);
![Page 76: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/76.jpg)
Funções dos Arquivos M
disp(x) Mostra resultado sem identificar variável
echo controla a exibição dos comandos
input solicita ao usuário a entrada
keyboard transfere o controle para o teclado
pause(n) suspende execução por n segundos
pause suspende até que tecla seja pressionada
![Page 77: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/77.jpg)
Análise de Dadoscov(x) matriz de covariância
min(x) componente mínima
max(x) componente máxima
mean(x) média
rand(x) núm. aleatórios uniformemente distrib
var(x) variância
std(x) desvio padrão
sum(x) soma dos elementos da coluna
![Page 78: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/78.jpg)
Funções criadas pelos usuários
![Page 79: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/79.jpg)
Funções em Matlab
• Uma função em Matlab é um arquivo de texto.
• Arquivos de funções devem ter um nome igual ao nome da função.
• Um conjunto de funções e scripts pode ser agrupado em um único diretório. O conjunto é chamado de toolbox.
• Toolboxes extendem as capacidades do Matlab
![Page 80: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/80.jpg)
Funções criadas pelo usuário
• a partir da segunda vez a execução de uma função é mais rápida que da primeira
• as linhas de comentário que antecedem a primeira linha sem comentário aparecem quando se pede ajuda
![Page 81: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/81.jpg)
Arquivos M de funções
• variáveis criadas dentro de uma função permanecem apenas no espaço de trabalho da função
• funções podem compartilhar variáveis com outras funções desde que sejam declaradas como globais
• arquivos M de funções podem conter mais de uma função, a função primária e as sub-funções
![Page 82: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/82.jpg)
Funções em Matlabfunction [d] = distPontos(p1,p2)%% Calcula a distancia entre dois pontos % p1 = [x1 y1] e p2 = [x2 y2] % em um espaco bi-dimensional% Entradas:% p1, p2: dois pontos% Saída:% d: distancia entre p1 e p2% Uso:% d = distPontos(p1, p2)% Autor:% Adriano Cruz% Data:% 2010/03/02d = sqrt((p1(1) - p2(2))^2 + (p1(2) - p2(2))^2);
![Page 83: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/83.jpg)
Funções em Matlab
p1 = [ 1 1 ];
p2 = [ 0 0 ];
d = distPontos(p1, p2)
![Page 84: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/84.jpg)
Arquivos
![Page 85: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/85.jpg)
Arquivos Formatados
• Parecido com C• Lembrar que matlab anda no sentido
da coluna.• Ao ler dados para uma matriz irá
preencher no sentido da coluna• Ao escrever dados de uma matriz irá
ler no sentido da coluna
![Page 86: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/86.jpg)
Arquivos Formatados
(1,1) = (1) (1,2) = (5) (1,3) = (9) (1,4)=(13)
(2,1) = (2) (2,2) = (6) (2,3)=(10) (2,4)=(14)
(3,1) = (3) (3,2) = (7) (3,3)=(11) (3,4)=(15)
(4,1) = (4) (4,2) = (8) (4,3)=(12) (4,4)=(16
![Page 87: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/87.jpg)
Arquivos Formatados
• Considere o arquivo
1 12 43 94 165 25
![Page 88: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/88.jpg)
Arquivos Formatados
• Será armazenado em um vetor como
1 1 2 4 3 9 4 16 5 25
![Page 89: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/89.jpg)
Arquivos Formatados
• Novamente Considere o arquivo 1 12 43 94 165 25
![Page 90: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/90.jpg)
Arquivos Formatados Leitura
fid=fopen('dadosin.txt', 'r');a = fscanf(fid, '%d');fclose(fid);a=reshape(a,2,size(a,1)/2)';
![Page 91: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/91.jpg)
Arquivos Formatados Escrita
x = -3:1:3;y = x.^2;fid = fopen('dados.txt', 'w');temp = [ x; y ]fprintf(fid,'%f %f\n', temp);fclose(fid);
![Page 92: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/92.jpg)
Arquivos Formatados Escrita
-3.000000 9.000000-2.000000 4.000000-1.000000 1.0000000.000000 0.0000001.000000 1.0000002.000000 4.0000003.000000 9.000000
![Page 93: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/93.jpg)
Extras
![Page 94: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/94.jpg)
Temporização
• tic: começa a contar o tempo.
• toc: termina de contar o tempo.
![Page 95: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/95.jpg)
Temporização
• tic: começa a contar o tempo.
• toc: termina de contar o tempo.
![Page 96: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/96.jpg)
Matrizes Celulares
• são matrizes cujos elementos são células
• qualquer célula da matriz pode conter qualquer tipo de dado (matrizes numéricas, texto, matrizes celulares, etc.)
![Page 97: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/97.jpg)
Matrizes Celulares
>> A(1,1) = { [1 2 3; 4 5 6; 7 8 9] };
>> A(1,2) = { 2 + 3i };
>> A(2,1) = { ‘um texto’ }
>> A(2,2) = {12 : -2 : 0};
>>A =
[3x3 double] [2.0000+ 3.0000i]
'um texto' [1x7 double]
![Page 98: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/98.jpg)
Matrizes Celulares
>> A{1,1} = [1 2 3; 4 5 6; 7 8 9];
>> A{1,2} = 2 + 3i;
>> A{2,1} = ‘um texto’
>> A{2,2} = 12 : -2 : 0;
>>A =
[3x3 double] [2.0000+ 3.0000i]
'um texto' [1x7 double]
![Page 99: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/99.jpg)
Matrizes Celulares
>> cellplot(A);
![Page 100: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/100.jpg)
Estruturas• são objetos que contêm “recipientes de
dados” com nomes diferentes• esses recipientes são chamados de campos• os campos podem conter qualquer tipo de
dado• ao se referir aos campos de uma estrutura
usa-se seus nomes em vez de usar índices• estruturas podem conter outras estruturas
![Page 101: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/101.jpg)
Estruturas
>> cliente.nome = ‘João da Silva’;
>> cliente.custo = 86.50;
>> cliente.teste.A1C = [6.3 6.8 7.1 7.0 6.7];
>> cliente.teste.CHC = [2.8 3.4 3.6 4.1 3.5];
![Page 102: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/102.jpg)
Ajuda On-Line
• help
• helpwin
• helpdesk
• lookfor
• demo
• arquivos de ajuda
![Page 103: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/103.jpg)
Para Saber Mais
• Hanselman, Duane; Littlefield, Bruce; Matlab 5 Guia do Usuário (versão do estudante), Makron Books, 1997.
• Matsumoto, Élia Yathie; Matlab 6 - Fundamentos de Programação, Editora Érica, 2001.
![Page 104: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/104.jpg)
Demonstrações
matrices/graphs and matrices
matrices/matrix manipulation
visualization/vibration movie
visualization/visualizing sound
gallery/knot
gallery/slosh
gallery/logo
games/sliding puzzle
![Page 105: Iniciação ao MatLab Eugênio Silva E Adriano Cruz](https://reader035.vdocuments.com.br/reader035/viewer/2022062623/552fc10a497959413d8c0aaf/html5/thumbnails/105.jpg)
Temporização
• tic: começa a contar o tempo.
• toc: termina de contar o tempo.