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

Preview:

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

print

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.