• Nenhum resultado encontrado

MATLAB MATRIX LABORATORY

N/A
N/A
Protected

Academic year: 2021

Share "MATLAB MATRIX LABORATORY"

Copied!
12
0
0

Texto

(1)

MATLAB – MAT RIX LAB ORATORY

A

JUDA

help – help on-line em linha de texto helpwin – janela de help on-line helpdesk – documentação em hipertexto

C

OMANDOS

pathtool – janela para configuração da lista de diretórios de busca workspace – janela do workspace

path / matlabpath – exibem path de busca corrente

what – exibe arquivos ‘.m’ contidos no diretório de trabalho clc – limpa tela

which – identifica e localiza arquivo

! – chama comandos do SO

>> !del teste.m

format – formato de exibição dos números na tela who – lista nomes das variáveis em uso

whos – lista nomes e tipos das variáveis em uso clear – elimina variáveis

O

PERADORES

* multiplicação

.* multiplicação por escalar

(2)

E

XPRESSÕES

B

OOLEANAS

0 (zero) ou nil (nulo, vazio) indica condição falsa 1 (um) ou diferente de 0 (zero) indica condição verdadeira

Símbolos e operadores booleanos:

Operador Teste retorna verdadeiro se Exemplo

== I igual a J I == J

~= I diferente de J I ~= J

< I menor que J I < J

> I maior que J I > J

<= I menor igual a J I <= J

>= I maior igual a J I >= J

~ (not) I falso ~ I

& (and) I e J verdadeiros I & J

| (or) I ou J verdadeiro I | J

V

ARIÁVEIS

São case-sensitive e o nome deve ser formado com o máximo de 32 caracteres

C

ONTANTES

N

UMÉRICAS

pi – 3.141592...

inf – infinito (1/0) NAN – não número (0/0)

realmin – menor número real (2

-1022

) realmax – maior número real (2

1023

)

F

UNÇÕES

T

RIGONOMÉTRICAS

sin – seno cos – cosseno

sinh – seno hiperbólico

(3)

F

UNÇÕES

M

ATEMÁTICAS

sqrt – raiz quadrada exp – exponencial log – logaritmo

abs – retorna o valor absoluto fix – parte inteira de um número real round – inteiro mais próximo floor – menor inteiro mais próximo ceil – maior inteiro mais próximo

F

UNÇÕES

M

ATRICIAIS

eye – matriz identidade

>> a = eye(3)

>> a = 1 0 0 0 1 0 0 0 1

zeros – matriz de zeros ones – matriz de 1’s det – determinante inv – inversa

reshape – reformata matriz

size – vetor contendo o tamanho de cada dimensão da matriz lenght – comprimento do vetor ou dimensão máxima da matriz

diag – retorna a diagonal de uma matriz ou cria matriz diagonal a partir de um vetor tril – matriz triangular inferior

triu – matriz triangular superior

fliplr – inverte ordem das colunas

flipud – inverte ordem das linhas

(4)

I

NDEXAÇÃO DOS ELEMENTOS DE UMA MATRIZ

>> a = [4 3; 2 1];

>> a = 4 3 2 1

>> a(1,1) = 4 % linha, coluna, matriz

>> a(3) = 2 % indexação sequencial (ordem em linhas)

T

IPOS DE

D

ADOS

String (Cadeia de caracteres)

>> txt = ‘Resposta’

>> a = double(txt)

>> a = [82 101 115 112 111 115 116 97] % valores em ASCII

>> char(a)

>> a = Resposta

Cell Array (células)

Permite o armazenamento de matrizes de naturezas diferentes em uma única estrutura identificada por um único nome.

>> celula = cell(2)

>> celula{1,1} = eye(3)

>> celula{1,2} = ‘matriz identidade’

>> celula{2,1} = pi

>> celula{2,2} = 0:1:10

num2cell – transforma um vetor numérico em células

>> v = 1:5 % v = [1 2 3 4 5]

>> c = num2cell(v)

>> c = [1] [2] [3] [4] [5]

cat – faz a função inversa, concatena vetores

>> cat(Dim,a,b) % concatena os vetores a e b na dimensão Dim

>> cat(2,célula{:})

(5)

S

TRUCT

(E

STRUTURA

)

Permite o armazenamento de matrizes de naturezas diferentes, identificáveis por nome de campos.

>> s = struct(‘Nome’, {‘ST01’}, ‘Identificador’, {200}, ‘Valores’, {[10 20 30]})

>> s = Nome: ‘ST01’

Identificador: 200

Valores: [10 20 30]

>> s.Nome

>> ans = ST01

>> s(2).Nome = ‘ST01’

>> s(2).Identificador = 201

>> s(2).Valores = [0.1 5]

M

ONTANDO VETORES

>> a = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1]

ou

>> for j=1:11 % para j de 1 até 11

a(j) = (j-1)/10; % compute o j-ésimo termo

>> end % indicação de final

ou

>> a = linspace(0,1,11)

ou

>> a = 0:0.1:1 % a = <inicio>:<incremento>:<final>

linspace(a,b,c) – vetor linearmente espaçado (a = inicial, b = final, c = número de elementos)

logspace(a,b,c) – vetor logaritmicamente espaçado (inicial = 10

a

, final = 10

b

, c = número de elementos)

(6)

C

ONCATENANDO MATRIZES

a = [1 2] b = [3 4]

Concatena matrizes em linhas

>> c = [a b] % c = [1 2 3 4]

Concatena matrizes em colunas

>> d = [a ; b] % d = [1 2 3 4]

find – retorna um vetor coluna com os índices sequenciais dos elementos = 0 ou que satisfazem a condição determinada

>> b = find(a < 20) % retorna um vetor coluna com os índices dos elementos % de a menores de 20

sort(a, Dim) – ordena elementos da matriz a na dimensão Dim, se DIM não for informado ordena as colunas.

R

ESOLVENDO SISTEMAS LINEARES Ax = b

x = A-1 b

>> A = [3 1 5 2]

>> b = [2; -9]

>> x = A\b

Combinando as linhas

>> U = [A b]

>> u = rref(U)

>> xu = u(:,3)

E

DITOR DE

P

ROGRAMAS

>> edit

% - comentários

... – linha de comando continua na próxima linha

(7)

S

CRIPT

Sequência de comandos para automatizar algum processo repetitivo. Não trabalha com parâmetros de entrada nem de saída. Sempre trabalha com as variáveis do workspace (usa variáveis pré-definidas e define variáveis no workspace)

F

UNÇÃO

Também é uma sequência de comandos, mas que aceita comandos de entrada, retorna parâmetros de saída. Utilizam seu próprio espaço de memória para armazenar suas variáveis locais.

function [ps1, ps2, ..., psn] = nome_da_funcao (pe1, ..., pem) ps1, ..., psn = Parâmetros de saída

pe1, ..., pem = Parâmetros de entrada

% estat.m - Exemplo 1

% [media, desvio_padrão] = stat(x)

% retorna média e desvio padrão dos valores em x function [media, desvio_padrão = stat(x)

media = mean(x); % media

desvio_padrao = std(x) % desvio padrão

Interessante aproveitar o cabeçalho para documentar o programa e gerar os textos de auxílio par o comando help.

A função e o arquivo m-file devem ter o mesmo nome.

Variáveis do workspace não são reconhecidas dentro das funções

Podem ser criadas subfunções dentro de uma função

E

STRUTURAS DE

S

ELEÇÃO

If, elseif, else

if I == J

A(I,J) = 2;

elseif abs(I – J) == 1 A(I,J) = -1;

else

(8)

Switch

switch Val

case 0

A(I,J) = 2;

case 1

A(I,J) = -1;

otherwise A(I,J) = 0;

end

E

STRUTURAS DE

R

EPETIÇÃO

While

while I < J if I == J

A(I,J) = 2;

elseif abs(I – J) == 1 A(I,J) = -1;

else

A(I,J) = 0;

end I = I + 1;

end

For

for <Valor> = <inicio>:<incremento>:<fim>

<Expressão1>

...

<Expressão2>

end

for i=1:10000

x(i) = cos(2*pi*i/100);

end;

V

ARIÁVEIS

G

LOBAIS global <nome da variável> % declarar também dentro da função

which – pesquisa arquivos

>> which sin

>> which polyfit

(9)

struct e cell array

R

ESOLVENDO SISTEMAS LINEARES

>> A = fix (10 * rand(10));

>> B = fix (100 * rand(10,1))

>> C = [A B]

>> D = rref(A)

>> E = A\B

Calcular a diferença de D(:,11) e E

Format – muda a formato de apresentação

format long

format short

IF, Switch, For

Save e Load

>> save (nome do arquivo)

>> save (arquivo) <nome das variáveis> - salvar variáveis (.mat)

>> load (nome do arquivo.mat)

>> load (nome do arquivo) (variável)

find – retorna um vetor coluna com os índices seqüenciais dos elementos = 0 ou que satisfazem a condiç ão determinada

>> b = find(a < 20) % retorna um vetor coluna com os índices dos elementos de a

% menores de 20

F

UNÇÕ ES PARA IMPORTAÇ Ã O DE DADOS

Arquivos ASCII

>> dlmread (<arquivo>, <delimitador>) % importa dados

>> dlmwrite (<arquivo>, <matriz>, <delimitador>) % exporta dados

(10)

Outras funções

importdata – importa dados de vários tipos de arquivos (bmp, mat, txt, wav, etc) xlsread – importa dados de planilhas excel

P

LOT

>> % Exemplo: Gráfico f(x) = x * cos(x), -2p < x < 2p

>> x = -2*pi : 0.1 : 2*pi;

>> y = x .* cosx(x);

>> figure(1);

>> plot(x,y); % default : linha contínua azul

>> plot(x,y,’r*’); % marcador * na cor vermelho

C

ONFIGURAÇÕ ES DO GRÁFICO

hold on – habilita / desabilita exibiç ão de gráficos na mesma janela.

grid on – habilita / desabilita grid do gráfico zoom(fator) – zoom no gráfico

legend(‘x * cos(x)’) - legenda xlabel(‘Eixo x’) – nome do eixo x ylabel(‘Eixo y’) – nome do eixo y

title(‘Grá fico f(x)=x * cos(x)’) – titulo do gráfico

axis([xmin xmax ymin ymax]) – altera limites do gráfico (escala)

>> axis([-pi pi –1 1]);

V

ÁRIOS GRÁFICOS NUMA SÓ JANELA

>> plot (x,sin(x),’r’, x,cos(x),’k:’, x,sin(x).*cos(x),’b>’);

>> legend(‘sin(x)’,’cos(x)’,’sin(x).*cos(x)’);

Plotando matrizes – cada coluna gera uma curva

>> A = fix(10 * rand(10));

>> plot(A);

plotyy – duas curvas no mesmo gráfico com escalas diferentes

>> x = 0.1:0.1:10

>> plot(x, sin(x));

>> plot(x, exp(x));

(11)

>> plotyy(x, sin(x), x, exp(x));

subplot(linhas, colunas, posição) – gera vários gráficos numa mesma janela.

>> x = -2*pi:0.1:2*pi;

>> y = x .* cos(x);

>> subplot(1,3,1) % 1 linha, 3 colunas na posição 1

>> plot(x,y);

>>

>> subplot(1,3,2) % na posição 2 com zoom

>> plot(x,y);

>> zoom(2);

>>

>> subplot(1,3,3) % na posição 3, 2 funções no mesmo gráfico

>> plot(x,y,’r’);

>> hold

>> plot(x, x.*sin(x));

exportar gráfico – grava gráfico como imagem no disco

>> print –dbitmap –r300 <arquivo>

G

RÁ FICOS PARA FUNÇÕ ES ESPECIAIS

polar, loglog, semilogx, semilogy plot3 – cria uma curva no espaç o 3D

>> x = -4*pi : 0.1 : 4*pi

>> y = -4*pi : 0.1 : 4*pi

>> plot3(cos(x), sin(y), (x+y)) % fornecer coordenadas x, y, z

F

UNÇÕ ES GRÁ FICAS

2D

ESPECIAIS

(12)

pie – gráfico de pizza

scatter – gráfico discreto que indica pontos com marcadores stem – gráfico discreto que indica pontos com hastes

E

XERCÍCIOS

1) Calcular o vetor Y = sin(2 * pi * x

i

/100), x = 1, 2, ..., 10000

2) Escreva um programa no Matlab para um valor n e construir uma matriz A (nxn) com elementos a

ij

= 3

ij

. Tente fazer usando laços e depois tente refazer sem usar laços.

3) Qual a diferença entre (A * A) e (A .^ A) ?

4) Criar uma função para calcular média e desvio padrão.

5) Criar uma função com subfunções para calcular a média e o desvio padrão.

6) Implementar uma perceptron simples para as funções AND e OR, apresentando o treinamento, a

convergência e sua aplicação.

Referências

Documentos relacionados

Estatuto de Protecção: Não tem Valor Patrimonial: Médio Ameaças: Abandono/Agentes climatéricos Estado de Conservação: Regular Uso do Solo: Agrícola.

The focus of this thesis was to determine the best standard conditions to perform a laboratory-scale dynamic test able to achieve satisfactory results of the

For additional support to design options the structural analysis of the Vila Fria bridge was carried out using a 3D structural numerical model using the finite element method by

Neste sentido, o presente artigo tem por objetivo delimitar a área de contribuição do reservatório de Furnas, bem como as áreas de contribuição dos parques

Organ stem flower bud flower bud flower bud flower bud flower bud flower bud flower bud leaf leaf leaf leaf flower flower inflorescence achene flower flower flower stem stem fruit

remanejamento da equipe de trabalho; Aplicar protocolos assistenciais e administrativos pertinentes à área de atuação da enfermagem; Promover a gestão dos leitos sob

Diante do exposto, este trabalho visa apresentar uma análise do monitoramento dinâmico de um ponto geodésico materializado sobre a estrutura da passarela que liga os campi

A Organização estará a cargo do Município de Fornos de Algodres, assim como todos os membros do STAFF que estarão disponíveis para vos auxiliar no que for preciso.. Ao