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

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

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

Apresentações semelhantes


Apresentação em tema: "Matlab The language of tecnical computing Marie-Océane Parent : curso Matlab : nov 2009."— Transcrição da apresentação:

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

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

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

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 !!!

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) – clear all : limpa a memória do Matlab 6 666

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;

8 As variáveis ARRAY [ full or sparse ] LogicalCharNumeric Double (Padrão)Single Int8, int16, int32, Uint8, uint CellStructureFunction handle 8 888

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 999

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

11 Estruturas de controle 11 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 Switch Switch expressão case expressão1 instrução 1; case expressão2 instrução 2;... otherwise instrução n; end

12 Testes e Condições lógicas 12 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 : ~

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

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

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 15 OBS : considerando uma precisão double

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

17 Entradas e saídas 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

19 Conversar com o usuário salvar e recuperar arquivos 19 [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

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

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

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

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

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

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

26 Excel : Importar 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 26 Permite de abrir o arquivo no Excel e o usuário seleciona a zona a importar Indica a zona no formato Excel. Exemplo : B5,E5 Sem especificação Matlab vai selecionar a folha intera

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

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

29 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 = [ ]; – 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 Exemplos :

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

31 Criação de matrizes exemplos 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

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

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

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

36 Manipulação de matrizes 36

37 Operações Matriciais SignificadoSímboloExemplo Transposta Adição Subtração Multiplicação com um escalar Multiplicação X solução de A.X=B X solução de X.A=B Potência Determinante Traça Valores Próprias Inversa Fatoração de Cholesky Fatoração L.U * \ / ^ det trace eig inv chol lu B=A C=A+B C=A-B D=3*A D=A*B X=A\B X=B/A B=A^3 dd=det(A) t=trace(A) vp= eig(A) (o resultado é um vetor) B=inv(A) (consultar a ajuda) 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

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 :. SignificadoSímbol o Exemplo Multiplicações Divisão Potência.*./.\.^ z=x.*y ou z(i,j)=x(i,j)*y(i,j) z=x./y ou z(i,j)=x(i,j)/y(i,j) z=x.\y ou z(i,j)=y(i,j)/x(i,j) z=x.^y ou z(i,j)=x(i,j)^y(i,j) 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

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

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 :isstr1 se é um string 0 se é um numero – Vaziosdeblanksuprime os espaços dum string – Comprimentosizenumero de caracteres do string – Código ASCIIabscódigo ASCII de cada caractere charcaractere associado a um código ASCII – Conversãoint2strintero em caractere num2strreal em caractere str2numcaracteres em real evaltexto em instrução Matlab lower/upperminúscula/maiúscula – Comparação strcmp 43

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

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

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

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

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

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

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

51 Tabela de células Acessar a um elemento Indexação da célula V1=C1(1,1); 51 Indexação do conteúdo V1=C1{1,1}; OBS : essas duas sintaxes NAO são equivalentes

52 Tabela de células Funções interessantes – cell : criação de uma tabela de células de matrizes vazias – celldisp : visualização do conteúdo das células – cellplot : visualização gráfica da tabela – cellfun : aplica uma função a todos os elementos – iscell : valor =1 se é uma tabela de células – num2cell : conversão de uma tabela de números em uma tabela de células 52

53 Estruturas Definição MATLAB : Structures are multidimensional MATLAB arrays with elements accessed by textual field designators. Os campos podem ser de diferentes tipos Exemplo : Ensaios de Caixa de Marchas – Caixa – Data – Relação – Torque – Velocidade 53

54 Estruturas 54 OBS : Todos os componentes de uma estrutura tem os mesmos campos. Os campos que não são definidos tem o valor [].

55 Funções Gráficas Funções gráficas básicas Sintaxe Funções especializadas Encomendas uteis Objetos gráficos

56 Funções gráficas básicas plotPlota em 2D errorbarPlota em 2D com barra de erros polarRepresentação polar ptotyyCria gráfico com eixo y dos dois lados loglogCria grafico com escada logaritmica semilogx semilogy Cria gráfico com um dos eixos na escada logarítmica plot3Plota uma linha em 3D 56

57 Sintaxe : função plot Nome_handle = plot (X,Y,lineSpec) – X e Y podem ser vetores do mesmo tamanho uma curva 2D – 1 handle – X e Y podem ser matrizes do mesmo tamanho uma curva 2D por coluna – 1 handle por curva – X pode ser um vetor e Y uma matriz uma curva 2D por coluna de Y de coordenada X : 1 handle por curva – lineSpec : string que permite de definir o estilo da curva Cor do traço Espessura Tipo de traço... 57

58 Estilo da curva lineSpec 58 Ex : plot (X,Y,--+r)

59 Exemplo : plot 59 t=0:pi/100:2*pi; x=sin(t); y1=sin(t+0.25); y2=sin(t+0.5); plot (x,y1,r-,linewidth,2) hold on plot(x,y2,b,linewidth,2) title(blulublu) xlabel(x=sin(t)) ylabel(y=sin(t+a)) grid on t : é um vetor cujas componentes variam de 0 até 2*pi com um encremento de pi/100 x, y1 e y2 são vetores do mesmo tamanho que t Plotar em vermelho com traço continuo e espessura 2, a curva y1=f(x) Plotar em azul com linha tracejada e espessura 2 a curva y2=f(x) Titulo do gráfico Legenda dos eixos Exibir as linhas de grade

60 Exemplo plot 60

61 Exemplo plot3 Sintaxe : nome_handle=plot3(X,Y,Z,linespec) desenhar uma hélice 61 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t,'linewidth',2) grid on

62 Funções específica Ver na ajuda : 62

63 Plotar superfície, volumes... Aplicação : visualizar a função seno cardinal : sen(x)/x 63 x=-8:0.43:8; y=x; [X,Y]= meshgrid (x,y); R= sqrt (X.^2+Y.^2); Z=sin (R)./R; surf (X,Y,Z)

64 Plotar superfície, volumes 64 subplot (2,2,1); mesh (X,Y,Z) title ('Visualizar com mesh') subplot (2,2,2) meshc (X,Y,Z) title ('Visualizar com meshc') subplot (2,2,3) surf (X,Y,Z) title ('Visualizar com surf')

65 Formatação, anotações hold on / hold offSuperposar curvas title (string)insere um titulo xlabel (string) ylabel (string) insere descrição dos eixos grid on / grid offinsere ou cancele linhas de grade no gráfico boxQuadra mento do gráfico subplotCriar diferentes gráficos na mesma figura legendCriar uma legenda text, gtextColocar texto axesDefinir os limites dos eixos 65

66 Salvar uma figura print : manda pela impressora saveas : salvar no formato imagem – saveas (handle,nome, formato) – saveas (handle,nome.ext) 66 OBS : E bom testar os formatos para saber qual é o mais adequado

67 Objetos gráficos 67 Figura BotãoEixos SuperficiesImagensLinhasTextos Menus Submenus

68 Características de objetos gráficos Ligação dinâmica : handle – Numero real – Atribuído automaticamente na criação do objeto gráfico – Não pode ser modificado Propriedades : tipo de objeto, pais, cor, visibilidade... – Dependem do tipo de objeto – Podem ser modificadas – Tem valores padrões (default) – Podem ser recuperadas, memorizadas, transferidas, modificadas... 68

69 Recuperar o handle Na criação do objeto gráfico – hfig1 = figure; – hobj1 = função_de_criação_do_objeto; Usando funções Matlab – hobj =gco (get current object) gca (get current axis) gcf (get current figure) – Função handlem (ver a ajuda) – Função findobj : permite de recuperar o handle do current objeto e de todos os descendente dele. 69

70 Lista das propriedades Pode ser obtida com a encomenda : get (handle) Pode ser obtida dum jeito interativo 70

71 Gerenciar os objetos gráficos Acessar, modificar o valor de uma propriedade – Val= get (handle, nome_propriedade); – set (handle, nome_propriedade,valor_novo); Deletar um objeto gráfico – Val = delete ( handle_do_objeto_a_deletar); 71 t=0:pi/50:10*pi; hfigura=plot3(sin(t),cos(t),t); grid on hlinha=findobj(gca,'Type','line'); set(hfigura,'linewidth',4) set(hlinha,'color','r')

72 Figura Criação – Com o encomendo figure hfigura= figure (propriedades); – Usando uma função gráfica do Matlab : todas as funções de plotagem podem gerar uma figura : plot, plot3, surf hfig1=figure('units', 'normal','position',[ ]); hfig2=figure('units','normal','position',[ ],'color',[1 1 0]);

73 Posicionar a janela figure ( unit,normal,position,[Xbaixo Ybaixo CompX CompY] ) 73 Pixel (padrão) Inches Centimeters Points Normal Tela do computador Figura Ybaixo Xbaixo CompY CompX

74 Propriedades uteis visible on / offGerencia a visibilidade do objeto ColorCor do fundo da figura NameNome da janela Numbertitle on / offExibição ou não do numero no titulo da janela PointerAspecto do cursor Figura BotãoEixos SuperficiesImagensLinhasTextos Menus Submenus 74 clf : cancela o conteúdo de uma figura close (handle_da_figura_para_fechar ) : fechar uma figura

75 Eixos Criar um novo sistema de eixos handle= axes ; Posicionar o sistema de eixos set (handle,units,normal,position,[Xbaixo Ybaixo CompX CompY]) 75 OBS : não fazer confusão entre a instrução axes e axis Pixel (padrão) Inches Centimeters Points Normal Janela da figura Sistema de Eixos Ybaixo Xbaixo CompY CompX

76 Propriedades dos eixos xlim, ylim, zlimDefinir os limites dos eixos fontname, fontsizeCaracterísticas de policia xscale, yscale, zscale ( lin / log ) Tipo de escala xtick, ystick, zstickPosição das graduações Figura BotãoEixos SuperficiesImagensLinhasTextos Menus Submenus 76 cla : cancela o conteúdo do sistema de eixos

77 Criar uma interface Escrevendo o programa – Figura – Eixos – Imagens – Edit text, static text – Buttons Push buttons Radio buttons Check box – Callbacks h_objeto_grafico= uicontrol (h_figura, units,normal, position,[...], style,text, text,nome_objeto, enable,on /off, value,[.], backgroundcolor,[...], callback,função_X(ind));

78 Criar uma interface Usando GUIDE 78

79 Referências Curso do Professor Aurelien Saulot : INSA de Lyon, Bases Informatiques pour lIngénieur, (B2I) 3 ème Année Génie Mécanique et Dévelopement Ajuda e demos de Matlab 7.1 Algumas imagens de projetos realizados com Cécile Lasfargues (diferencias finitas) et Benoît Trollé (tribologia) (slide 2) 79


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

Apresentações semelhantes


Anúncios Google