Upload
truongtram
View
233
Download
0
Embed Size (px)
Citation preview
Matlab– Noções introdutórias
Roteiro para aula
Matlab- Variáveis
Pode-se criar variáveis na área de trabalho
Comandos encerrados com ; não geram eco na área de trabalho
>> a = 65
a =
65
>> a = 65;
>> |
Matlab- Variáveis
>>whos
Name Size Bytes Class Attributes
a 1x1 8 double
>>|
Matlab- Operadores =
+, -, *, /, ^
Operadores relacionais ==, ~=, >, >=, <, <=
Operadores Lógicos &, |, ~
>> 5 + 5 >> a = 2 >> a ==2 >> a ~=2
>> who
>> 5 + 5
>> a = 2
>> a ==2
>> a ~=2
x = [0 5 3 7]; y = [0 2 8 7];
m = (x>y)&(x>4)
n = (x<=0)|(y==0)
m = ~((x<=0)|(y==0))
>> who
Matlab- Operadores
>> help sqrt
SQRT Square root.
SQRT(X) is the square root of the
elements of X. Complex
results are produced if X is not positive.
See also SQRTM.
Caso não saiba o nome da função
>> lookfor complex
Comando help
Matlab- Operadores
O índice do primeiro elemento é 1
Operadores aritméticos, lógicos e relacionais podem ser usados em conjunto
A vírgula, o ponto e vírgula, o espaço e [... ] são usados na inicialização de matrizes
: define intervalos, ex: 3:5 é como [3 4 5]
Índices de matrizes são definidos pelo uso de ()
. (ponto) é usado para definir produto escalar
‘ (apóstrofo) gera a matriz transposta
Matlab- Matrizes Vetor linha:
v1 = [3 8 40 5.3 6] ou [3, 8, 40, 5.3, 6]
Vetor coluna
v2 = [3; 8; 40; 5.3; 6]
v1’ é igual a v2 v2 = v1 ‘ (transposto)
Quem é v2(1)*v1(4)?
v1 + v2 não funciona mas:
v1 + v2’ no caso igual a 2*v1
Matlab- Matrizes
Operador :
início:incremento(opcional):final
>> a = (2:2:6)
a =
2 4 6
>>
Quem é a(2:3)?
Matrizes bi-dimensionais m = [1 4 3; 3 2 5] ponto e vírgula separa as linhas portanto:>> mm =
1 4 33 2 5
>> m(2,3)>> m(1,2)>> p = m(1:2,2:3)
Matrizes- operador :
no exemplo anterior m(1,:) corresponde à primeira linha de m: [1 4 3]
ainda m(:,2) é [4; 2], a segunda coluna
Parar deletar uma linha ou coluna de uma matriz, usa-se uma atribuição de [] a ela:m(:, 2) = [] [1 3; 3 5] ...m
o operador : é uma das mais fortes características de Matlab
O comando . O ponto é usado para realizar operações com
matrizes elemento a elemento.
.* ./ .\ .^
m = [1 4 3; 3 2 5]
n=[1 3 5;3 5 9]
m.*n
Para multiplicar a primeira coluna pela terceira coluna da matriz m original:
m(:,1).*m(:,3) [3; 15] (coluna)
2*m
O comando ´ (apóstrofo)
É usado para obter a matriz transposta>>m
1 4 3
3 2 5
>>m ‘
1 3
4 2
3 5
>> m(1,1:2).*m(:,3)'
3 20
Funções trigonométricas sin, cos, etc., assim
como funções matemáticas elementares sqrt,
exp, log, etc., operam com vetores termo por
termo.
>> x = [0 2.5 5 7.5 10];
>> y = sin(x);
>> z = sqrt(x).*y
Concatenação de matrizes
Para adicionar colunas a uma matriz basta fazer a justaposição da matriz original com a que contém as colunas extras dentro de colchetes [... ]
u = 1:100;
u = [u 1:5]; u é um vetor linha 1x105
Strings
São matrizes de bytes
‘A’ + 1 ... 66
>>s = ‘Mecanica‘;
>>s’ans =
Me
c
an
i
ca
Strings
>>s(4) + 1 a==97ans =
98
>> s(4) = s(4) + 1s =
Mecbnica troca o a por b
>>[s s s s]ans =
MecbnicaMecbnicaMecbnicaMecbnica
Stringsu = [s' s' s' s']
u =
MMMM
eeee
ccccbbbb
nnnn
iiiicccc
aaaa
>> u(4,:)
ans =
bbbb
Matlab– comandos úteis ones(ilin, jcol) zeros(ilin, jcol) rand(ilin,jcol) ... linspace(início,final,número)
>> x = linspace(0,10,5) Cria um vetor x com 5 elementos linearmente espaçados entre 0 e 10.
logspace(início,final,número) y =logspace(0,1) plot(y)
Matlab- Funções A maioria das funções Matlab recebem matrizes
como parâmetros
exp(1:3) [2.7183 7.3891 20.0855]
sqrt(m) é uma matriz com as raízes
quadradas de cada elemento de m
sum(1:100) retorna a soma de 1 a 100
plot(sin(linspace(1,100,50))) ?
plot(sin(linspace(1,100,50)))
0 5 10 15 20 25 30 35 40 45 50-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Salvando variáveis
Uma variável da memória pode ser salva em um arquivo por meio do comando save
>> lingprog = [1:4;8:11;3:6;10:13]
e depois carregada com o comando load
save arquivo.ext variável –asciisave z:\lingprog.dat lingprog –ascii
>> clear lingprog
Carregando variáveis
Se no diretório atual existe um arquivo texto, lingprog.dat, que contém valores:
>> load lingprog.dat
carrega o arquivo em memória. Agora existe a variável matriz na área de trabalho com os dados do arquivo
>> whos lingprog
Name Size Bytes Class Attributes
lingprog 4x4 128 double array
Matlab- Gráficos
x = 1:100;
plot(x)
Gera um gráfico da função identidade
a forma geral de plot:
plot(x1, y1, s1, x2, y2, s2,... )
Gráficos
figure
hold on
grid on
legend(´leg x´,´leg y´,... )
title(´texto´)
xlabel(´... ´)
ylabel(´... ´)
Gráfico- exemplo
Se as linhas a seguir forem copiadas de um editor de textos e coladas na área de trabalho...
x = linspace(1,30,50);y = x.^2;plot(x,y,'r');title('y = x^2');xlabel('eixo x');ylabel('eixo y');grid on
Gráficos- exemplo
0 5 10 15 20 25 300
100
200
300
400
500
600
700
800
900
y = x2
eixo x
eixo
y
teta = linspace(0,2*pi,100);
x = cos(teta);
y = sin(teta);
plot(x,y)
axis('equal');
xlabel('horizontal')
ylabel('vertical’)
title('Círculo de raio unitário')
Gráficos- exemplo
Criando scripts Copiar e colar no bloco de notas uma lista de
comandos.
Salvar como ‘nome_scrpt.m’
Executar usando o nome dado
File set path
run nome_scrpt
Scripts– controle de programa
Loop FOR
n=10 ;
for i = 1:n,
for j = 1:n,
a(i,j) = 1/(i+j-1);
end
end
a
Comandos- for
for var = vetor
var percorre todos os elementos de vetor
for clássico:
for i=1:n
...
end
i = input(‘ Entre com o valor de i: ‘);
j = input(‘Entre com o valor de j: ‘);
if i == j
a = 2
elseif abs(i-j) == 1
a = -1
else
a = 0
end
IF condição
comandos
ELSEIF condição
comandos
ELSE
comandos
END
Scripts– controle de programaCondicional
sin seno.
sinh seno hiperbólico.
asin arco seno.
asinh arco seno hiperbólico.
cos coseno.
cosh coseno hiperbólico.
acos arco coseno.
acosh arco coseno hiperbólico.
tan tangente.
tanh tangente hiperbólico.
atan, atan2 arco tangente.
atanh arco tangente hiperbólico.
sec secante.
sech secante hiperbólico.
Funções Trigonométricas
exp Exponencial (exp(A) = eAij).
log Logaritmo natural (log(A) = ln(Aij)).
log10 Logaritmo na base 10 (log10(A) = log10(Aij)).
sqrt Raiz quadrada.
Funções Exponenciais
Funções Complexas
abs Valor absoluto.
angle Ângulo de fase.
conj Complexo conjugado.
imag Parte imaginária.
real Parte real.