matlab the language of tecnical computing marie-océane parent : curso matlab : nov 2009

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

Upload: internet

Post on 17-Apr-2015

116 views

Category:

Documents


0 download

TRANSCRIPT

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

Matlab

The language of tecnical computing

Marie-Océane Parent : curso Matlab : nov 2009

Page 2: 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

2222

• 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

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

Introdução

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

3333

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

Apresentação

4444

Histórico

Janela de comando

Variáveis

Conteúdo da pasta

de trabalho

Pasta de trabalho

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

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

5555

A MELHOR FERRAMENTA DO MATLAB É A AJUDA !!!

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

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

6666

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

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

7777

Instrução 1;Instrução 2%comentário...Instrução n;

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

As variáveis

ARRAY

[ full or sparse ]

Logical Char Cell Structure Function handleNumeric

Double (Padrão) SingleInt8, int16, int32,Uint8, uint16....

8888

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

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”

• WorkspaceAs variáveis criadas são armazenadas no Workspace– clear : cancelar as variáveis– save : salvar as variáveis– load : recuperar variáveis

9999

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

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

10101010

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

Estruturas de controle

11111111

Volta “For” : incrementalFor ind = inicio : incremento : fim

instrução 1;instrução 2;...instrução n;

end

Volta “While” : por enquantoWhile condição lógica

instrução 1;instrução 2;...instrução n;

end

“Switch”Switch expressão

case expressão1instrução 1;case expressão2instrução 2;...otherwiseinstrução n;

end

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

Testes e Condições lógicas

12121212

Testes lógicos :

IF Condição lógicainstrução 1;instrução 2;

elseif Condição lógicainstrução 3;

elseinstrução n;

end

Condições lógicas :

Igualdade : ==

Diferencia : ~=

Superioridade : > , >=

Inferioridade : < , <=

Operadores lógicos :

e : &

ou : |

Xor : xor

Not : ~

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

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

131313

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

Palavras chaves

• Palavras definidas por Matlabbreak, case, catch, continue, else, elseif, end, for,

function, global, if, otherwise, persistent, return, switch, try, while

Se você usar essas palavras do jeito errado ...

14141414

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

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

151515

OBS : considerando uma precisão double

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

Entradas e saídas• Tipos de Entradas/ Saídas

Textos, Imagens, Som & vídeoArquivos de calculo Excel ...

• Recuperar dados usando a interface

• Usando a função uiimport

16161616

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

Entradas e saídas

17171717

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

Conversar com o usuário• Entrada do teclado :

Val = input (‘texto1’)

string = input (‘texto2’, ‘s’ )

• Saída no Command Windowdisp (variável)

18181818

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

Conversar com o usuário

• salvar e recuperar arquivos

19191919

[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

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

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)

20202020

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

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 nomeNos arquivos –ascii, se não é indicado um nome pela variável, o

conteúdo é colocado numa variável com o nome do arquivo

21212121

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

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

22222222

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

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 valoresVariáveis = fscanf (fid, ‘format’, num_valores)

• Leitura de um conjunto de valores bináriasVariáveis = fread (fid, num_valores)

23232323

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

Funções de escritura

• Escritura de valores especificando o formatofprintf (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áriasfwrite (fid, variavel_para_salvar, precisão);

24242424

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

Excel : reconhecer

• Reconhecer um arquivo Excel[tipo, nomes_das_folhas] = xlsfinfo (‘nome_do_arquivo’)

25252525

‘Microsoft Excel Spreadsheet’

Ou [] se o arquivo não é um documento Excel

[ ‘folha1’ ‘folha2’... ‘folha n’]

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

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

26262626

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

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

Excel : Escrever

• Escrever dados num documento Excel

27272727

[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 : 65536 x 256

Se a folha não existe, é criada

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

Matrizes e tabelas

CriaçãoManipulação

Operações matriciaisOperações de tabela

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

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 : fimEx : 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 .....

29292929

Exemplos :

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

Criação de matrizes

– Usando a instrução loadOBS : todas as linhas do arquivo tem que ter o mesmo

número de colunas !

30303030

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

Criação de matrizes• exemplos

31313131

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

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;

32323232

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

Manipulação de matrizes

• Concatenação

33333333

NB : As dimensões das matrizes tem que ser coerentes

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

Manipulação de matrizes

• Extração

34343434

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

Manipulação de matrizes

• Suprimir linhas e colunas

35353535

O símbolo [ ] significa matriz vazia

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

Manipulação de matrizes

36363636

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

Operações MatriciaisSignificado 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)

(consultar a ajuda)

37373737

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

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

383838

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

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 : “.”

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)

39393939

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

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

40404040

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

Alguns exemplos

41414141

Produto matricial

Produto de tabelas

Matriz aleatória 3x3

Traça da matriz B

Determinante da matriz B

Inversa da matriz B

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

Tabelas “elaboradas”

StringsMatrizes ocas

Tabelas de célulasEstruturas

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

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 caracterestr2num caracteres em realeval texto em instrução Matlablower/upper minúscula/maiúscula

– Comparação strcmp

43434343

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

Tabelas de String

• Duas sintaxes possíveis– Tabela “clássica” :

S=strvcat(string1,string2,...)

44444444

–Tabela de células :S={ string1, string2...; string3,string4...};

Brancos são juntados para que cada linha tenha o mesmo tamanho

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

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

45454545

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

Matrizes Ocas

• Criação direitaS=sparse(ind_lin, ind_col, valores, num_lin,num_col)

46464646

Vetores de mesma dimensão escalares

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

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

47474747

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

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

48484848

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

Tabela de células : Cell Arrays

• O que é ?– Armazenamento “organizado” de dados de tipos e

dimensão diferentes

49494949

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

Tabela de células

• IndexaçãoIndexação da célula C(ind1,ind2)={valor};

50505050

OBS : essas duas sintaxes são equivalentes

Indexação do conteúdoC{ind1,ind2}=(valor);

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

Tabela de células

• Acessar a um elementoIndexação da célulaV1=C1(1,1);

51515151

Indexação do conteúdoV1=C1{1,1};

OBS : essas duas sintaxes NAO são equivalentes

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

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

525252

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

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

53535353

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

Estruturas

545454

OBS :

Todos os componentes de uma estrutura tem os mesmos campos.

Os campos que não são definidos tem o valor [].

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

Funções Gráficas

Funções gráficas básicasSintaxe

Funções especializadasEncomendas uteisObjetos gráficos

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

Funções gráficas básicasplot 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

565656

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

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

575757

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

Estilo da curva

• ‘lineSpec’

585858

Ex : plot (X,Y,’--+r’)

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

Exemplo : plot

595959

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

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

Exemplo plot

606060

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

Exemplo plot3• Sintaxe : nome_handle=plot3(X,Y,Z,’linespec’)• desenhar uma hélice

6161

t=0:pi/50:10*pi;plot3(sin(t),cos(t),t,'linewidth',2)grid on

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

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

6262

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

Plotar superfície, volumes...

• Aplicação : visualizar a função seno cardinal : sen(x)/x

6363

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)

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

Plotar superfície, volumes

6464

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

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

Formatação, anotaçõeshold 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 eixos656565

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

Salvar uma figura

• print : manda pela impressora• saveas : salvar no formato imagem

– saveas (handle,’nome’, ‘formato’)– saveas (handle,’nome.ext’)

6666

OBS : E bom testar os formatos para saber qual é o mais adequado

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

Objetos gráficos

676767

Figura

Botão Eixos Menus

Superficies Imagens Linhas SubmenusTextos

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

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

6868

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

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.

6969

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

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

7070

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

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

7171

t=0:pi/50:10*pi;hfigura=plot3(sin(t),cos(t),t);grid onhlinha=findobj(gca,'Type','line');set(hfigura,'linewidth',4)set(hlinha,'color','r')

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

Figura• Criação

– Com o encomendo figurehfigura= figure (‘propriedades’);

– Usando uma função gráfica do Matlab : todas as funções de plotagem podem gerar uma figura : plot, plot3, surf...

72

hfig1=figure('units', 'normal','position',[0.01 0.05 0.8 0.8]);hfig2=figure('units','normal','position',[0.012 0.08 0.5 0.5],'color',[1 1 0]);

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

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

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

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

Figura

Botão Eixos Menus

Superficies Imagens Linhas SubmenusTextos

74

clf : cancela o conteúdo de uma figura

close (handle_da_figura_para_fechar ) : fechar uma figura

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

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

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

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

Figura

Botão Eixos Menus

Superficies Imagens Linhas SubmenusTextos

76

cla : cancela o conteúdo do sistema de eixos

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

Criar uma interface

• Escrevendo o programa– Figura– Eixos– Imagens– Edit text, static text– Buttons

• Push buttons• Radio buttons• Check box

– Callbacks...

77

h_objeto_grafico= uicontrol(h_figura,’units’,’normal’,’position’,[...],’style’,’text’,’text’,’nome_objeto’,’enable’,’on /off’,’value’,[.],’backgroundcolor’,[...],’callback’,’função_X(ind)’);

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

Criar uma interface

• Usando GUIDE

78

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

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)

79