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

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

Embed Size (px)

Citation preview

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.