Академический Документы
Профессиональный Документы
Культура Документы
II Programao
1. Introduo
2. Tipos de dados
O MATLAB inclui 14 tipos de dados diferentes. Alguns dos mais utilizados: inteiro Preciso simples (menos espao, mas no pode ser usado em operaes) Preciso dupla (tipo de varivel mais comum em MATLAB) string (caracteres em representao unicode)
int single
double char
3. Ficheiros .m
Dois tipos de ficheiros .m funo definio de uma funo variveis locais argumentos input/output ficheiro: nome_funo.m 1 linha: deifinio da funo script sequncia de comandos MATLAB variveis - workspace sem argumentos ficheiro: nome.m
3. Ficheiros .m
Os ficheiros .m a utilizar devem estar no path MATLAB (por exemplo no pwd present working directory)
3.1. Ficheiros .m
- funo
Exemplo: function y=cub(x,p) % computes x^3+p y=x^3+p Ficheiro: cub.m > x=1:4 > cub(x,2) help cub
executar:
nome_fun(args_in)
ajuda:
help nome_fun
3.2. Ficheiros .m
- script
Exemplo:
Ficheiro: script1.m
executar:
>> script1
theta = -pi:0.01:pi; rho(1,:) = 2*sin(5*theta).^2; rho(2,:) = cos(10*theta).^3; rho(3,:) = sin(theta).^2; rho(4,:) = 5*cos(3.5*theta).^3; for i = 1:4 polar(theta,rho(i,:)) pause end
4. Estruturas de controlo
for varivel=vector/matriz
instrues
end
while condio
instrues
end
Instrues condicionais
>> i=0; >> while i<10, i=i+1 >> end >> if a>10 >> a=a-1 >> end
if condio
instrues
end
Introduo ao MATLAB II Programao 2004/03/30 S. M. Barbosa
Trade-off: velocidade - legibilidade/facilidade cdigo Regra n1: evitar usar ciclos for em MATLAB ---> vectorizao Exemplo: x=0 for k=1:1001 y(k)=log10(x) x=x+0.01 end
x=0:0.01:10 y=log10(x)
5.1. Vectorizao
length(find(yr>1978))
Medidas da eficincia de um algoritmo: - n de operaes em ponto flutuante - tempo de execuo (no uma medida apropriada em mquinas multi-utilisador)
10
Exemplos:
toc=0.29
toc=0.005
11
5.3. Pr-alocao
Exemplo: v=zeros(200,1) for i=1:200 v(i)=rank(rand(i).^2); end for i=1:200 v(i)=rank(rand(i).^2); end
12
Comentar o cdigo Preferir funes a scripts Ler preferencialmente dados de ficheiros Utilizar preferencialmente funes de alto-nvel Vectorizar operaes Evitar ciclos, utilizar pr-alocao em memria + importante do que a velocidade: cdigo correcto e legvel
12