1 / 79

Matlab

Matlab. The language of tecnical computing. Marie-Océane Parent : curso Matlab : nov 2009. Topicos. Introdução Apresentação Características Script / Mfile Funções básicas uteis Variáveis Matrizes e tabelas Criação Manipulação Operações Tabelas elaboradas. Funções gráficas

adena-chang
Download Presentation

Matlab

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Matlab The language of tecnical computing Marie-Océane Parent : curso Matlab : nov 2009

  2. Topicos • Introdução • Apresentação • Características • Script / Mfile • Funções básicas uteis • Variáveis • Matrizes e tabelas • Criação • Manipulação • Operações • Tabelas elaboradas • Funções gráficas • Funções gráficas básicas • Funções especificas • Plotar superfícies e volumes • Formatação anotações • Objetos gráficos • Handle • Propriedades • Gerenciar objetos gráficos • Figura • eixos 2 2 2

  3. Introdução • Utilizações na engenharia • Análise numérica • Cálculo matricial • Processos graficos • Criações de interfaces • .... 3 3 3

  4. Apresentação Pasta de trabalho Conteúdo da pasta de trabalho Janela de comando Variáveis Histórico 4 4 4

  5. Características • Matlab é uma linguagem interpretada (≠ compilada) • As variáveis elementares são tabelas, matrizes, vetores (≠ ≠ ≠ Mapple) • O “coding style” é importante • Escrever seu nome e a data • Dar nomes claros as variáveis • Escrever o máximo de comentários (% ou crtl+R) • Respeitar as tabulações A MELHOR FERRAMENTA DO MATLAB É A AJUDA !!! 5 5 5

  6. Encomendas basicas • Sintaxe flexível: • Nome_comando = parâmetro ; • Nome_comando = parâmetro • parâmetro • Bom saber • clc : limpa a tela do computador (sem limpar a memória) • clearall : limpa a memória do Matlab 6 6 6

  7. Scripts / Mfiles • Execução de um conjunto de instruções • Coisa.m • Um script pode chamar outro script • “%” introduz comentários • O arquivo do script tem que ser na pasta de trabalho ou no Path para ser executado • Matlab tem o seu próprio editor de script Instrução 1; Instrução 2 %comentário ... Instrução n; 7 7 7

  8. As variáveis 8 8 8

  9. As variáveis • Nomes das variáveis • Max 18 caracteres • Tem que iniciar por uma letra • Matlab faz diferença entre Maiúscula e minúscula • Evitar ‘ç’ ou ‘ã’ ou outros caracteres “exóticos” • Workspace As variáveis criadas são armazenadas no Workspace • clear : cancelar as variáveis • save : salvar as variáveis • load : recuperar variáveis 9 9 9

  10. Constantes definidas • Funções de Matlab que definem constantes usuais • pi • i, j • Inf : o infinito do computador (ex : 1/0) • NaN : Not a Number (ex : 0/0) • eps : precisão relativa ... 10 10 10

  11. Estruturas de controle “Switch” Switch expressão case expressão1 instrução 1; case expressão2 instrução 2; ... otherwise instrução n; end Volta “For” : incremental For ind = inicio : incremento : fim instrução 1; instrução 2; ... instrução n; end Volta “While” : por enquanto While condição lógica instrução 1; instrução 2; ... instrução n; end 11 11 11

  12. Testes e Condições lógicas Testes lógicos : IF Condição lógica instrução 1; instrução 2; elseif Condição lógica instrução 3; else instrução n; end Condições lógicas : Igualdade : == Diferencia : ~= Superioridade : > , >= Inferioridade : < , <= Operadores lógicos : e : & ou : | Xor : xor Not : ~ 12 12 12

  13. Funções básicas uteis • ceil (x) : arredonda o numero ‘x’ para o inteiro mais próximo na direção de +inf • floor (x) : arredonda o numero ‘x’ para o inteiro mais próximo na direção de –inf • round (x) : arredonda o numero ‘x’ para o inteiro mais próximo • fix (x) : arredonda o numero ‘x’ para o inteiro mais próximo na direção de 0 • rem (x,y) : resto da divisão euclidiana x/y • rand : gera números aleatórios entre 0 e 1 13 13

  14. Palavras chaves • Palavras definidas por Matlab break, case, catch, continue, else, elseif, end, for, function, global, if, otherwise, persistent, return, switch, try, while Se você usar essas palavras do jeito errado ... 14 14 14

  15. Formatos de variáveis numéricas • Formatos mais usados : para mais possibilidades ver Help Format • format : (default) 4 dígitos apos do ponto decimal = format short • format long : 15 dígitos incluindo o ponto decimal • format short e : 5 dígitos mais o expoente (floating) • format long e : floating, 15 dígitos OBS : considerando uma precisão double 15 15

  16. Entradas e saídas • Tipos de Entradas/ Saídas Textos, Imagens, Som & vídeo Arquivos de calculo Excel ... • Recuperar dados usando a interface • Usando a função uiimport 16 16 16

  17. Entradas e saídas 17 17 17

  18. Conversar com o usuário • Entrada do teclado : Val = input (‘texto1’) string = input (‘texto2’, ‘s’ ) • Saída no Command Window disp (variável) 18 18 18

  19. Conversar com o usuário • salvar e recuperar arquivos • [nome_do_arquivo nome_da_pasta] = uigetfile(‘filtro’) • [nome_do_arquivo nome_da_pasta] = uiputfile(‘filtro’) OBS : se o usuário cancela, a função vai dar o valor 0 19 19 19

  20. Instrução save • save nome-arquivo variavel1 variavel2 formato • save (‘nome_arquivo’, ‘formato’, ‘variavel1’, ‘variavel2’) O formato padrão é o formato binário Matlab (.mat) 20 20 20

  21. Instrução load • load nome_arquivo • load (‘nome_arquivo’) • Nome_var = load (‘nome_arquivo’) Nos arquivos .mat criado com a instrução save, as variáveis ficam com o mesmo nome Nos arquivos –ascii, se não é indicado um nome pela variável, o conteúdo é colocado numa variável com o nome do arquivo 21 21 21

  22. Abrir e fechar um arquivo • Abrir : fid = fopen (‘nome_arquivo’, ‘permissão’); • fid : variável que identifica o arquivo ; = -1 se teve um problema na abertura • Fechar : estatuto : fclose (fid) • estatuto = -1 se teve um problema no fechamento do arquivo OBS : Matlab fecha todos os arquivos quanto se fecha ele 22 22 22

  23. Funções de leitura • Leitura linha por linha : • Texto_linha = fgetl (fid); • Texto_linha = fgets (fid); (copia o caráter ‘nova linha’ : coloca mais espaço) • Leitura de um conjunto de valores Variáveis = fscanf (fid, ‘format’, num_valores) • Leitura de um conjunto de valores binárias Variáveis = fread (fid, num_valores) 23 23 23

  24. Funções de escritura • Escritura de valores especificando o formato fprintf (fid,’format’, variavel_para_salvar); • Fid : o identificador de arquivo obtido com fopen • ‘format’ : %num_caract.num_decimais tipo • Ex : %6.2f • Escritura de valores binárias fwrite (fid, variavel_para_salvar, precisão); 24 24 24

  25. Excel : reconhecer • Reconhecer um arquivo Excel [tipo, nomes_das_folhas] = xlsfinfo (‘nome_do_arquivo’) ‘Microsoft Excel Spreadsheet’ Ou [] se o arquivo não é um documento Excel [ ‘folha1’ ‘folha2’... ‘folha n’] 25 25 25

  26. Excel : Importar Indica a zona no formato Excel. Exemplo : ‘B5,E5’ Sem especificação Matlab vai selecionar a folha intera • Importar data de um arquivo Excel • Num = xslread (‘nome_arquivo’, -1) • Num = xslread (‘nome_arquivo’, ‘nome_da_folha’, ‘zona’) • Num vai ser uma tabela de números • Do mesmo tamanho que a zona considerada • Os valores não numéricos são NaN • As linhas o colunas de textos são ignoradas Permite de abrir o arquivo no Excel e o usuário seleciona a zona a importar 26 26 26

  27. Excel : Escrever • Escrever dados num documento Excel Se a folha não existe, é criada = 1 : sucesso = 2 : fracasso [status, mensagem] = xlswrite (‘nome_arquivo’, M, ‘nome_folha’, ‘zona_escritura’) Informações sobre os problemas eventuais Tabela de dados para escrever Tamanho Maximo : 65536 x 256 27 27 27

  28. Matrizes e tabelas Criação Manipulação Operações matriciais Operações de tabela

  29. Exemplos : Criação de matrizes • Criar uma matriz • Explicitamente : • A matriz é delimitada por [ e ] • Os elementos da linha são separados por um espaço • O fim da linha é indicada por ‘ ; ’ • O símbolo ‘ : ‘ permite de criar um vetor com elementos espaçado regularmente : Vetor = inicio : passo : fim Ex : v = 1 : 1 : 4 ; ↔ v = [ 1 2 3 4 ]; • Usando as encomendas Matlab • lindspace : cria um vetor de n elementos com um inicio e um fim • zeros : cria uma matriz de zeros • ones : cria uma matriz de uns • rand : matriz aleatória uniforme • randn : matriz aleatória normal • eye : matriz identidade • pascal : triângulo de Pascal • magic : quadrado mágico • vander : Vander monde ..... 29 29 29

  30. Criação de matrizes • Usando a instrução load OBS : todas as linhas do arquivo tem que ter o mesmo número de colunas ! 30 30 30

  31. Criação de matrizes • exemplos 31 31 31

  32. Manipulação de matrizes • Obter o valor de um elemento : Var=nome_matriz(ind1,ind2); • Atribuir um valor a um elemento nome_matriz(ind1,ind2)=valor; 32 32 32

  33. Manipulação de matrizes • Concatenação NB : As dimensões das matrizes tem que ser coerentes 33 33 33

  34. Manipulação de matrizes • Extração 34 34 34

  35. Manipulação de matrizes • Suprimir linhas e colunas O símbolo [ ] significa matriz vazia 35 35 35

  36. Manipulação de matrizes 36 36 36

  37. Operações Matriciais 37 37 37

  38. Operações vetorias • dot (a,b) : produto escalar dos vetores a e b • cross (a,b) : produto vetorial • norm (a) : norma(2) do vetor a 38 38

  39. Operações de tabelas • Operações que acontecem elementos por elementos entre tabelas de mesmas dimensões (n x m). • Permite de evitar de construir voltas iterativas • O resultado vai ser uma tabela (n x m) • Os operadores são caracterizados por o símbolo : “.” 39 39 39

  40. Operações de tabelas • Operadores de relação : >, >= ,< ,<= ,== ,~= (O resultado é uma tabela de 0 e 1) • Operadores lógicos : & ,| ,~ (O resultado é uma tabela de 0 e 1) • Raiz : sqrt, ^ • Procura de valores : find • Operadores trigonométricos : sin, cos, tan, asin, acos, atan, atan2... unidade em radianos • Operadores hiperbólicos : sinh, cosh, tanh, acosh, atanh... • Números complexos : abs, sqrt, angle, real, imag, conj... • Operadores logaritmicos : log, exp, log10 • n! factorial (n) • ... 40 40 40

  41. Matriz aleatória 3x3 Traça da matriz B Produto matricial Determinante da matriz B Inversa da matriz B Produto de tabelas Alguns exemplos 41 41 41

  42. Tabelas “elaboradas” Strings Matrizes ocas Tabelas de células Estruturas

  43. String • Sintaxe : nome_variavel= ‘texto...’; • Funções elementares • Concatenação : [ ] txt=[ txt1, txt2, ‘marcel’]; • Teste : isstr 1 se é um string 0 se é um numero • Vazios deblank suprime os espaços d’um string • Comprimento size numero de caracteres do string • Código ASCII abs código ASCII de cada caractere char caractere associado a um código ASCII • Conversão int2str intero em caractere num2str real em caractere str2num caracteres em real eval texto em instrução Matlab lower/upper minúscula/maiúscula • Comparação strcmp 43 43 43

  44. Tabelas de String • Duas sintaxes possíveis • Tabela “clássica” : S=strvcat(string1,string2,...) Brancos são juntados para que cada linha tenha o mesmo tamanho • Tabela de células : • S={ string1, string2...; string3,string4...}; 44 44 44

  45. Matrizes Ocas • Definição • Matrizes que tem muitos ‘0’ • A ferramenta de definição de matrizes ocas permite de armazenar só os valores não-nulos e sua localização na matriz. • Permite de economizar muito espaço de memória • Criação • Não é nunca automático • A função sparse(M) permite de converter uma matriz normal em uma matriz oca • A função full(N) permite de voltar a uma matriz cheia 45 45 45

  46. Matrizes Ocas • Criação direita S=sparse(ind_lin, ind_col, valores, num_lin,num_col) Vetores de mesma dimensão escalares 46 46 46

  47. Matrizes Ocas • Informações sobre os elementos não-nulos • nnz : número de elementos não-nulos • nonzeros : vetor dos elementos não-nulos • find : indica os índices i e j dos elementos não-nulos • Visualização gráfica • spy : visualização 2D, cada ponto representa um elemento não-nulo 47 47 47

  48. Matrizes Ocas • Operações • A maioria das operações Matlab funcionam com as matrizes ocas • Existem algumas funções específicas : • issparse : indica se uma matriz é o não é oca • spalloc : alocação do espaço • speye : matriz identidade oca • sprand : matriz aleatória oca • ... 48 48 48

  49. Tabela de células : Cell Arrays • O que é ? • Armazenamento “organizado” de dados de tipos e dimensão diferentes 49 49 49

  50. Tabela de células OBS : essas duas sintaxes são equivalentes • Indexação Indexação da célula C(ind1,ind2)={valor}; • Indexação do conteúdo • C{ind1,ind2}=(valor); 50 50 50

More Related