A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Eugênio Silva eugenio@posgrad.nce.ufrj.br Iniciação ao MatLab Eugênio Silva eugenio@posgrad.nce.ufrj.br.

Apresentações semelhantes


Apresentação em tema: "Eugênio Silva eugenio@posgrad.nce.ufrj.br Iniciação ao MatLab Eugênio Silva eugenio@posgrad.nce.ufrj.br."— Transcrição da apresentação:

1 Eugênio Silva eugenio@posgrad.nce.ufrj.br
Iniciação ao MatLab Eugênio Silva

2 Introdução MatLab – Matrix Laboratory (Universidades de Stanford e Novo México ) originalmente escrito para trabalhar com matrizes e vetores evoluiu ao longo do anos até se tornar uma ferramenta de ampla abrangência.

3 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

4 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

5 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

6 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

7 Scripts em Matlab Um script em Matlab é um arquivo texto que contém uma seqüência de de um mais comandos. 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

8 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');

9 Scripts em Matlab

10 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

11 Funções em Matlab function [membership] = triangle(x,tri_def);
%TRIANGLE Triangular Membership Function % [membership] = triangle(x,[a b c]) % % Returns the membership to a universe of discourse defined % by [a,b,c]. Note: a,b,c must be in the universe of discourse. % x : universe of discourse % a : left point of the triangular membership function % b : center of the triangular membership function % c : right point of the triangular membership function % y : membership function % Wes Hines % The University of Tennessee % Copyright 1997

12 Funções em Matlab a = tri_def(1); b = tri_def(2); c = tri_def(3);
membership=zeros(size(x)); A=find(x==a); B=find(x==b); C=find(x==c); if isempty(A&B&C); error('a,b, and c must be defined in the universe of discourse: x.') end for i=A:B membership(i)=(i-A)/(B-A+eps); for i=B:C membership(i)=(C-i)/(C-B+eps); if B==C membership(B)=1;

13 Funções em Matlab % Matlab mantem um workspace, assim apaga tudo do workspace clear all; temperatura = -30:1:60; eixos = [ ]; MuitoFrio = trapzoid (temperatura, [ ]); Frio = triangle (temperatura, [ ]); Normal = triangle (temperatura, [ ]); Quente = triangle (temperatura, [ ]); MuitoQuente = trapzoid (temperatura, [ ]); plot (temperatura, MuitoFrio, temperatura, Frio, temperatura, Normal, temperatura, Quente, temperatura, MuitoQuente); axis (eixos); legend('MuitoFrio','Frio', 'Normal','Quente','MuitoQuente'); title('Graficos de Frio.'); xlabel('Temperaturas'); ylabel('Frio');

14 Scripts em Matlab

15 Exemplo – transpor uma matriz
Pascal MatLab 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. >> a = [1 2 3; 4 5 6; 7 8 9] a = 1 2 3 4 5 6 7 8 9 >> b = a’ b =

16 Operações Elementares
>> – 2 ans = 8 >> 4    9 56 >> 25 / \ 25 ans = 10 >> 3 ^ 2  2 ^ 2 + 2 38

17 Definição de Variáveis
10 >> b = 20; O ‘;’ evita que o resultado apareça na tela. >> c = 1 + 2i ou c = 1 + 2j c = – i

18 Variáveis Pré-Definidas
>> ans variável padrão usada para resultados >> pi >> i ou j >> realmax maior número real positivo utilizável >> realmin menor número real positivo utilizável >> nargin número de argumentos de entrada >> nargout número de argumentos de saída >> inf infinito

19 Funções Elementares abs(x) módulo gcd(x,y) MDC sin(x) seno lcm(x,y)
MMC asin(x) arco seno log(x) logaritmo natural cos(x) co-seno log10(x) logaritmo na base 10 tan(x) tangente max(x) valor máximo exp(x) exponencial min(x) valor mínimo inv(x) matriz inversa de x sqrt(x) raiz quadrada

20 Espaço de Trabalho >> who lista variáveis existentes na memória
>> whos lista variáveis com informações detalhadas >> clear apaga as variáveis da memória >> save salva as variáveis em um arquivo .mat >> load carrega as variáveis contidas em um .mat >> format formato de apresentação dos resultados

21 Comandos do Sistema Operacional
>> 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

22 Vetores >> x = [0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1]  pi ou
>> x = linspace(0,pi,11) >> y = sin(x)

23 Vetores >> x(3) >> y([8 2 9 1]) >> x(1:5)
>> z = [x(1:5) 2 5 7] >> x(7:end) >> t = [x y] >> y(3:-1:1) >> t = [x; y] >> x(2:2:7) >> z = z’

24 Matrizes >> A = [1 2 3; 4 5 6; 7 8 9] >> B = A(3:-1:1, : )
>> C = [A B( : , [1 3])] >> A(2,2:3) = 5 6 >> B(:,2) = [ ] >> A(3,:) = 7 8 9 >> B = A( : , [ ])

25 Matrizes >>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

26 Matrizes matriz(10) ou matriz(2,3) 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16

27 Busca de Sub-Matrizes >> x = -3:3 x = -3 -2 -1 0 1 2 3
>> k = find(abs(x) > 1) k = >> y = x(k) >> A = [1 2 3; 4 5 6; 7 8 9] A = >> [ i , j ] = find(A > 5) i = j = 1

28 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))

29 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]

30 Operações com Vetores e Matrizes
a = [a1 a2 ... an] , b = [b1 b2 ... bn] , c = <um escalar> divisão de vetores (direita) a . / b = [a1 / b1 ... an / bn] divisão de vetores (esquerda) a . \ b = [a1 \ b1 ... an \ bn] potenciação vetorial c .^ a = [c ^ a1 ... c ^ an] a .^ c = [a1 ^ c ... an ^ c] a .^ b = [a1 ^ b1 ... an ^ bn]

31 Operadores Relacionais e Lógicos
< menor que <= menor ou igual > maior que >= maior ou igual = igual ~= diferente & e | ou ~ não

32 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

33 Estrutura Condicional – if
>> if expressão_1 comandos_1; elseif expressão_2 comandos_2; else comandos_3; end

34 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

35 Laços de Repetição – for / while
>> for x = vetor comandos; end >> while expressão

36 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);

37 Arquivos M de comandos úteis quando o número de comandos é grande, ou caso seja necessário alterar os valores das variáveis e re-executar alguns comandos armazenam uma seqüência de comandos em um arquivo texto que é executado a partir do prompt

38 Funções dos Arquivos M disp(x)
mostra o resultado sem identificar a variável echo controla a exibição dos comandos input solicita ao usuário que forneça a entrada keyboard transfere o controle para o teclado pause(n) suspende a execução por n segundos pause suspende até que uma tecla seja pressionada

39 Arquivos M de funções o nome da função deve ser idêntico ao nome do arquivo 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

40 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

41 Análise de Dados cov(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 distribuídos var(x) variância std(x) desvio padrão sum(x) soma dos elementos de cada coluna

42 Gráficos Bidimensionais
>> x = linspace(0, 2  pi, 30); >> y = sin(x); >> z = cos(x); >> plot(x,y,x,z)

43 Gráficos Bidimensionais
>> 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*’)

44 Gráficos Bidimensionais
>> x = -2.9 : 0.2 : 2.9; >> y = randn(5000,1); >> hist(y,x)

45 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

46 Gráficos Tridimensionais
>> mesh(peaks)

47 Gráficos Tridimensionais
>> surf(peaks)

48 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.)

49 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] [ i] 'um texto' [1x7 double]

50 Matrizes Celulares >> A{1,1} = [1 2 3; 4 5 6; 7 8 9];
>> A{1,2} = i; >> A{2,1} = ‘um texto’ >> A{2,2} = 12 : -2 : 0; >>A = [3x3 double] [ i] 'um texto' [1x7 double]

51 Matrizes Celulares >> cellplot(A);

52 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

53 Estruturas >> cliente.nome = ‘João da Silva’;
>> cliente.custo = 86.50; >> cliente.teste.A1C = [ ]; >> cliente.teste.CHC = [ ];

54 Ajuda On-Line help helpwin helpdesk lookfor demo arquivos de ajuda

55 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.

56 Demonstrações matrices/graphs and matrices
matrices/matrix manipulation visualization/vibration movie visualization/visualizing sound gallery/knot gallery/slosh gallery/logo games/sliding puzzle


Carregar ppt "Eugênio Silva eugenio@posgrad.nce.ufrj.br Iniciação ao MatLab Eugênio Silva eugenio@posgrad.nce.ufrj.br."

Apresentações semelhantes


Anúncios Google