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

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

The language of tecnical computing

Apresentações semelhantes


Apresentação em tema: "The language of tecnical computing"— Transcrição da apresentação:

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

2 Topicos Introdução Matrizes e tabelas Funções gráficas 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 Conteúdo da pasta de trabalho
Apresentação Pasta de trabalho Conteúdo da pasta de trabalho Janela de comando Variáveis Histórico 4 4 4

5 A MELHOR FERRAMENTA DO MATLAB É A AJUDA !!!
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: Bom saber
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 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 Workspace 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 Importar data de um arquivo Excel
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 : x 256 27 27 27

28 Criação Manipulação Operações matriciais Operações de tabela
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 : 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 Significado Símbolo Exemplo 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 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 Significado Símbolo Exemplo Multiplicações
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 : “.” Significado Símbolo 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 39 39

40 Operações de tabelas Operadores de relação : >, >= ,< ,<= ,== ,~= (O resultado é uma tabela de 0 e 1) Operadores lógicos : & ,| ,~ 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 Alguns exemplos Matriz aleatória 3x3 Traça da matriz B
Produto matricial Produto de tabelas Matriz aleatória 3x3 Traça da matriz B Determinante da matriz B Inversa da matriz B 41 41 41

42 Strings Matrizes ocas Tabelas de células Estruturas
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 Criaçã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 Indexação Indexação da célula Indexação do conteúdo
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

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

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

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

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
plot Plota em 2D errorbar Plota em 2D com barra de erros polar Representação polar ptotyy Cria gráfico com eixo ‘y’ dos dois lados loglog Cria grafico com escada logaritmica semilogx semilogy Cria gráfico com um dos eixos na escada logarítmica plot3 Plota uma linha em 3D 56 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 57

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

59 Exemplo : plot t=0:pi/100:2*pi; x=sin(t); y1=sin(t+0.25);
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 59 59

60 Exemplo plot 60 60

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

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

64 Plotar superfície, volumes
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') 64

65 Formatação, anotações hold on / hold off Superposar curvas
title (‘string’) insere um titulo xlabel (‘string’) ylabel (‘string’) insere descrição dos eixos grid on / grid off insere ou cancele linhas de grade no gráfico box Quadra mento do gráfico subplot Criar diferentes gráficos na mesma figura legend Criar uma legenda text, gtext Colocar texto axes Definir os limites dos eixos 65 65

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

67 Objetos gráficos 67 67

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 Usando funções Matlab
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); 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') 71

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] ) Tela do computador Figura Ybaixo Xbaixo CompY CompX Pixel (padrão) Inches Centimeters Points Normal

74 Propriedades uteis visible on / off Gerencia a visibilidade do objeto
Color Cor do fundo da figura Name Nome da janela Numbertitle on / off Exibição ou não do numero no titulo da janela Pointer Aspecto do cursor close (handle_da_figura_para_fechar ) : fechar uma figura clf : cancela o conteúdo de 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]) OBS : não fazer confusão entre a instrução axes e axis Janela da figura Pixel (padrão) Inches Centimeters Points Normal CompX Xbaixo Sistema de Eixos CompY Ybaixo

76 Propriedades dos eixos
xlim, ylim, zlim Definir os limites dos eixos fontname, fontsize Características de policia xscale, yscale, zscale ( ‘lin’ / ‘log’ ) Tipo de escala xtick, ystick, zstick Posição das graduações 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

79 Referências Curso do Professor Aurelien Saulot : INSA de Lyon,
Bases Informatiques pour l’Ingé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)


Carregar ppt "The language of tecnical computing"

Apresentações semelhantes


Anúncios Google