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

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

Introdução ao MATLAB para Hidrólogos

Apresentações semelhantes


Apresentação em tema: "Introdução ao MATLAB para Hidrólogos"— 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 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') Plan1: [3x3 double] >> A.Plan1 ans = >> B = xlsread('dados.xls') B = Importando dados (ver “fileformats”, “iofun”)

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)

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

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)
>> A(6) ans = 8 >> A(2,2) 5 >> A(2,2) = 1 Indexação Referenciando por: Matriz(linha,coluna) Matriz(nº do elemento)

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)=[] >> 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
>> TM(60) ans = >> Q.data Sheet1: [7670x1 double] >> Q.data.Sheet1(60) >> Q.textdata.Sheet1(60) '1/3/1977‘ >> Q.textdata.Sheet1(end) '31/12/1997' >> Q.textdata.Sheet1(1) '1/1/1977' 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?

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

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

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

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 = 2 c = 8 >> s = nonzeros (A) s =

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 3 Columns 4 through 5 >> a = [11:13; 3:1] a = >> a = [11:13; 3:-1:1]

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 = 1.0500 1.2200 1.4700 1.9000 2.8500 2.2600 1.6500 1.3300 1.1300 0.9800

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

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

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

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 TM90, TM95 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 m3/s S = 0,001 m/m n = 0,02 b = 8 m y = ? Dicas: usar Q = AR2/3S1/2 e yk+1 = g(yk) 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 Arquivos .mat (binário)
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
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 j = 1:n, if comp1(i) == comp2(j), cont = cont +1; Qdi(i).dados(cont) = Q.data.Sheet1(j); cont = 0; Exercício


Carregar ppt "Introdução ao MATLAB para Hidrólogos"

Apresentações semelhantes


Anúncios Google