MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de...

34
Matlab Noções introdutórias Roteiro para aula

Transcript of MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de...

Page 1: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

Matlab– Noções introdutórias

Roteiro para aula

Page 2: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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;

>> |

Page 3: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

Matlab- Variáveis

>>whos

Name Size Bytes Class Attributes

a 1x1 8 double

>>|

Page 4: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

Matlab- Operadores =

+, -, *, /, ^

Operadores relacionais ==, ~=, >, >=, <, <=

Operadores Lógicos &, |, ~

>> 5 + 5 >> a = 2 >> a ==2 >> a ~=2

>> who

Page 5: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 6: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 7: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 8: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 9: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

Matlab- Matrizes

Operador :

início:incremento(opcional):final

>> a = (2:2:6)

a =

2 4 6

>>

Quem é a(2:3)?

Page 10: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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)

Page 11: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 12: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 13: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 14: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 15: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 16: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

Strings

São matrizes de bytes

‘A’ + 1 ... 66

>>s = ‘Mecanica‘;

>>s’ans =

Me

c

an

i

ca

Page 17: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

Strings

>>s(4) + 1 a==97ans =

98

>> s(4) = s(4) + 1s =

Mecbnica troca o a por b

>>[s s s s]ans =

MecbnicaMecbnicaMecbnicaMecbnica

Page 18: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

Stringsu = [s' s' s' s']

u =

MMMM

eeee

ccccbbbb

nnnn

iiiicccc

aaaa

>> u(4,:)

ans =

bbbb

Page 19: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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)

Page 20: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 21: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 22: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 23: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 24: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 25: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

Gráficos

figure

hold on

grid on

legend(´leg x´,´leg y´,... )

title(´texto´)

xlabel(´... ´)

ylabel(´... ´)

Page 26: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 27: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 28: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

print

Gráficos- exemplo

Page 29: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 30: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 31: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

Comandos- for

for var = vetor

var percorre todos os elementos de vetor

for clássico:

for i=1:n

...

end

Page 32: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 33: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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

Page 34: MatLab – Noções introdutórias · Criando scripts Copiar e colar no bloco de notas uma lista de comandos.

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.