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

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

Introdução ao MATLAB para Hidrólogos Computação Interativa Porto Alegre, outubro de 2005.

Apresentações semelhantes


Apresentação em tema: "Introdução ao MATLAB para Hidrólogos Computação Interativa Porto Alegre, outubro de 2005."— Transcrição da apresentação:

1 Introdução ao MATLAB para Hidrólogos Computação Interativa Porto Alegre, outubro de 2005

2 Programação On-line help e Funções do MATLAB Como Carregar Dados –Importar Arquivos de Dados Matrizes e Vetores –Entrada, Indexação, Manipulação, Criação de Vetores Operações de Matrizes –Aritméticas, Relacionais, Lógicas, Funções, Caracteres Funções Inline Como Plotar Gráficos Simples Como Salvar Dados

3 On-line Help e Funções do MATLAB help >> help cumsum CUMSUM Cumulative sum of elements. For vectors, CUMSUM(X) is a vector containing the cumulative sum of the elements of X. For matrices, CUMSUM(X) is a matrix the same size as X containing the cumulative sums over each column. For N-D arrays, CUMSUM(X) operates along the first non-singleton dimension. CUMSUM(X,DIM) works along the dimension DIM. Example: If X = [ ] then cumsum(X,1) is [ ] and cumsum(X,2) is [ ] See also cumprod, sum, prod. Overloaded functions or methods (ones with the same name in other directories) help fints/cumsum.m Reference page in Help browser doc cumsum

4 On-line Help e Funções do MATLAB helpwin helpdesk lookfor >> helpwin >> helpdesk >> lookfor 'boxcox' BOXCOX transforms non-normally distributed data to normally distributed data. MV_BOXCOX box-cox transformation gui boxcox.m: transforms non-normally distributed FINTS object to a normal one.

5 Como Carregar Dados Importando dados (ver fileformats, iofun) >> load data >> A A = >> A = importdata('dados.xls') A = Plan1: [3x3 double] >> A.Plan1 ans = >> B = xlsread('dados.xls') B =

6 Como Carregar Dados Exercício –Carregar dados de vazão do arquivo Tres_Marias.xls usando TM = importdata e Q = xlsread

7 Como Carregar Dados Exercício >> TM = xlsread('Tres_Marias.xls'); >> Q = importdata('Tres_Marias.xls') Q = data: [1x1 struct] textdata: [1x1 struct] rowheaders: [1x1 struct]

8 Matrizes e Vetores Entrada –Usando funções prontas; >> A = logspace(0,5,6) A = >> A = randn(3) A =

9 Matrizes e Vetores Entrada –Digitando diretamente;... continua na linha seguinte [] matriz nula >> A = [1 2 3; 4 5 6; 7 8 9] A = >> A = [ ] A = >> A = [1 2 3; ; 7 8 9] A = >> A = [] A = []

10 Matrizes e Vetores Exercício –Criar matriz chuva com os dados: –Criar matriz (q) de vazão com 366 valores, através de função pronta (randn). Dica: Usar B = exp( *randn)

11 Matrizes e Vetores Indexação –Referenciando por: Matriz(linha,coluna) Matriz(nº do elemento) >> A = [1 2 3; 4 5 6; 7 8 9] A = >> A(6) ans = 8 >> A(2,2) ans = 5 >> A(2,2) = 1 A =

12 Matrizes e Vetores Indexação –Referenciando por: Matriz(sub-matriz) –Determinação automática de dimensões; >> B = A(2:3,:) B = >> B(:,3)=[] B = >> C (2,3) = 4 C = >> D (2, 1:2) = 8 D =

13 Matrizes e Vetores Exercício –Descobrir a vazão e a que dia pertencem a posição 60 –Qual o último dia da série? –E o primeiro? –Rearrumar matriz P pelo método dos blocos alternados

14 Matrizes e Vetores Exercício –Descobrir a vazão e a que dia pertencem a posição 60 –Qual o último dia da série? –E o primeiro? >> TM(60) ans = >> Q.data ans = Sheet1: [7670x1 double] >> Q.data.Sheet1(60) ans = >> Q.textdata.Sheet1(60) ans = '1/3/1977 >> Q.textdata.Sheet1(end) ans = '31/12/1997' >> Q.textdata.Sheet1(1) ans = '1/1/1977'

15 Matrizes e Vetores Manipulação de Matrizes –Indexação –Reforma (vetor matriz) >> A = [1 2 3; 4 5 6; 7 8 9]; >> v = [1 3]; >> B = A(v,:) B = >> x = B(:) x = >> C = reshape(x,3,2) C =

16 Matrizes e Vetores Manipulação de Matrizes –Transposição –Inicialização –Anexação e Retirada (vetor ou escalar) >> C = C' C = >> x = transp(C(:,2)) x = 7 3 >> C = sparse( ,2) C = All zero sparse: by-2 >> v = [8 7 3]; >> B = [A; v] B = >> B(end,:) = [] B =

17 Matrizes e Vetores Manipulação de Matrizes –Matrizes úteis: ones, zeros, rand, size, length, numel, find, nonzeros, max, min >> A = ones(2,2) A = 1 1 >> A = zeros(2,2) A = 0 0 >> size(B) ans = 3 3 >> length(B) ans = 3 >> numel(B) ans = 9

18 Matrizes e Vetores Manipulação de Matrizes –Matrizes úteis: ones, zeros, rand, size, length, numel, find, nonzeros, max, min >> A(1,:) = 8; >> [a,b,c]=find(A) a = 1 b = 1 2 c = 8 >> s = nonzeros (A) s = 8

19 Matrizes e Vetores Exercício –Agregar matriz q ao fim da matriz TM (TMq) –Determinar posição e valores máximos e mínimos de TM e de TMq –Encontre datas correspondentes –Refaça os procedimentos apenas para o período a década de 80

20 Matrizes e Vetores Criação de Vetores v = valor inicial : incremento : valor final >> s = 0:numel(B)/4:numel(B) s = Columns 1 through Columns 4 through >> a = [11:13; 3:1] a = >> a = [11:13; 3:-1:1] a =

21 Matrizes e Vetores Exercício –Refazer método dos blocos alternados usando criação de matrizes Dica: Usar um vetor de posições

22 Matrizes e Vetores Exercício >> pos = [((length(P)-1):-2:1) (2:2:length(P))] pos = >> p=P(pos) p =

23 Operações de Matrizes Aritméticas (+,-,*,/,\,^,.) >> A = [8 1 6; 3 5 7; 4 9 2]; >> B = [2 5 3; 7 9 1; 8 4 6]; >> A*B ans = >> A\B ans = >> A.^B ans =

24 Operações de Matrizes Relacionais (, =,==,~=) Lógicas (&, |, ~, xor) Funções matemáticas (sin,csch, exp, log, log10, abs) Funções matriciais(sqrtm,expm) >> A<=B ans = >> ~(A>B) ans = >> exp(A) ans = 1.0e+003 * >> expm(A) ans = 1.0e+006 *

25 Operações de Matrizes Variáveis de caracteres Funções úteis (any, all, rem, ceil, floor, disp, error, findstr, strcat, strcmp, datestr) >> nome = 'Curso' nome = Curso >> nome(3) ans = r >> datestr(60,6) ans = 02/29 >> (A>B)|(rem(A,2)~=0) ans =

26 Operações de Matrizes Funções úteis (any, all, rem, ceil, floor, disp, error, findstr, strcat, strcmp, datestr) >> a = 'Número de parâmetros de entrada insuficiente'; >> disp(a) Número de parâmetros de entrada insuficiente >> error(a) ??? Número de parâmetros de entrada insuficiente

27 Operações de Matrizes Exercício –Determinar TM 90, TM 95 Dica: –Reordenar vetor de dados –Criar outro com mesmo tamanho –Calcular permanência –Interpolar usando relações aritméticas

28 Funções In-line Aplica-se a funções simples apenas (usar m-files para funções mais complexas) Exercício Dados: Q = 15 m 3 /s S = 0,001 m/m n = 0,02 b = 8 m y = ? Dicas:usar Q = AR 2/3 S 1/2 e y k+1 = g(y k ) n >> f = inline('a^2+b^3') f = Inline function: f(a,b) = a^2+b^3 >> f(3,2) ans = 17

29 Como Plotar Gráficos Simples 2D(plot, fplot, ezplot, ezpolar, ezcontour, ezcontourf, hist, bar, normplot) 3D(ezplot3, ezsurf, ezsurfc) >> SF = importdata ('Paulo_Afonso-Moxoto_SF.xls') SF = data: [7670x2 double] textdata: {7671x3 cell} >> obs=SF.data(:,1); >> calc=SF.data(:,2); >> subplot(2,2,1),plot(1:length(obs),obs,1:length(calc),calc) >> subplot(2,2,2),scatter(obs,calc) >> subplot(2,2,3),bar([obs(1:365:3650) calc(1:365:3650)]) >> subplot(2,2,4),semilogy(1:length(obs),obs)

30 Como Plotar Gráficos Simples 2D(plot, fplot, ezplot, ezpolar, ezcontour, ezcontourf, hist, bar, normplot) 3D(ezplot3, ezsurf, ezsurfc) >> Z = importdata('MNT.txt'); >> surf (Z, 'FaceColor','interp',... 'EdgeColor','none',... 'FaceLighting','phong')

31 Como Salvar Dados Arquivos.mat (binário) –matlab.mat (default) >> A = reshape(9:-1:1,3,3); >> save data A >> save a.dat A –ascii >> clear A >> A ??? Undefined function or variable 'A'.

32 Exercícios Salvar arquivo de dados de Vazão diária Salvar arquivo de precipitação

33 Computação Interativa Exercício –Reorganizar Q para vetores por dia juliano –Plotar a média diária Dica: –Usar struct –Ver datestr, strcat (29/02), datenum –Indexação usando contador –Usar for

34 Computação Interativa Exercício tot = 366; n = length(Q.data.Sheet1); ini = datenum(Q.textdata.Sheet1(1)); cont = 0; for i = 1:tot, Qdi(i).dados = sparse(round(n/365.25),1); end Qdi(60).dados = sparse (floor(round(n/365.25)/4),1); comp1 = datenum(strcat(datestr(1:tot,6),'/00'))'; comp2 = datenum(strcat(datestr((1:n)'+ini-1,6),'/00')); for i = 1:tot, for j = 1:n, if comp1(i) == comp2(j), cont = cont +1; Qdi(i).dados(cont) = Q.data.Sheet1(j); end cont = 0; end


Carregar ppt "Introdução ao MATLAB para Hidrólogos Computação Interativa Porto Alegre, outubro de 2005."

Apresentações semelhantes


Anúncios Google