You are on page 1of 13

1) Introdução

• • • • Matlab é um pacote de alto desempenho para computação e visualização numérica Centenas de funções e facilidades implementadas Animação Linguagem de programação de alto nível

1.2) Matlab permite computação simbólica?
• Sim

1.3) Em quais plataformas Matlab executa?
• Praticamente em qualquer plataforma: MS-Windows, Unix, GNU Linux, etc.

1.4) Abrindo a janela do Matlab
• • Prompt do matlab On-line help

1.5) Fundamentos de Matlab
1.5.1) Matlab windows • • • Command window: “>>” Graphics window Edit window

1.5.2) On-line help 1.5.3) Entrada-Saída • • • • • • Essencialmente, há apenas um tipo em Matlab: matrix de números complexos Dimensão: size() length() Sensibilidade à caixa-alta/baixa: Matlab é sensível à caixa Saída Controle de saída: entre com more para paginar a saída Formato de saída o format short o format short e o format long o format long e o format hex

5. mat.5) Matlab é independente de plataforma • • • Executando Matlab Salvando arquivos Imprimindo 1.4) Tipos de Arquivos • • • M-files: arquivos com extensão “. todas as variáveis são eliminadas o clear x y z : limpa apenas x.6) Comandos úteis • On-line help o help o help topic o lookfor topic o expo : roda um programa de demonstração Workspace information o who : lista variáveis do workspace o whos : lista variáveis do workspace com tamanho o what : lista m-.m” do tipo ASCII. Programas são escritos em M-files Mat-files: arquivos binários de dados. y e z Informação sobre diretório o pwd : mostra diretório corrente o cd : troca o diretório corrente o dir : lista o conteúdo do diretório corrente o ls : similar ao “dir” Informações gerais o computer : tipo do computador o clock : hora o date : data • • • .5. Há dois tipos de arquivos: script files e function files.e mex-files do disco o clear: limpa o workspace. Servem para salvar resultados armazenados na memória (comando save e load) Mex-files: arquivos executáveis escritos em “C” e “Fortran” que podem ser executados diretamente a partir de Matlab 1.• o format rat o format bank Histórico de comandos: usar up-arrow 1.5.

• o more : controla paginação o flops : número de operações de ponto flutuante realizadas Término o ^c : aborta o quit : sai do Matlab o exit : sai do Matlab .

2.*y .2 Criando e trabalhando com matrizes de números >> x = [1 2 3] >> y = [1. % cria vetor com 5 elementos.1 Uma sessão Matlab mínima >> 2 + 2 >> x = 2+2 >> y = 2^2 + log(pi)*sin(x) >> y >> theta = acos(-1) >> format short e >> theta >> format long >> theta >> quit 2. 3] >> z = [ 2 1 0] >> a = x + z >> b = x + y >> a = x. Tutorial 2.*z >> b = 2*a >> x = linspace(0. espaçados linearmente entre % 0 e 10 >> y = sin(x) % operadores sin pode ser aplicada a vetores >> z = sqrt(x). 2.10.5).

2*pi. x = cos(theta). plot(x. axis('equal').y).y).3. >> x = cos(theta). 2. ylabel('y'). plot(x. y = sin θ.3.100). >> xlabel('x'). >> help circle >> circle 2. >> title('Circle of unit radius'). salvando e executando um script Nome do arquivo: circle. title('Circle of unit radius'). >> plot(x.100).3 Criando e imprimindo gráficos simples 2. x = r*cos(theta).3 Criando e executando função function [x.m % circle – A script file to draw a unit circle % File written by Rudra Pratap. xlabel('x'). Last modified 9/14/94 theta = linspace(0. y = sin(theta). >> y = sin (theta).2 Criando. y = r*sin(theta). .2*pi. >> axis('equal'). >> ylabel('y').2.1 Desenhar o círculo unitário Utilizamos a equação paramétrica do círculo: x = cos θ.3.y] = circlefn(r).100).2*pi. % CIRCLEFN – Function to draw a circle of radius r theta = linspace(0. 0 <= θ <= 2π >> theta = linspace(0.y).

'). minstr = int2str(time(5)).'). disp('And th etime is. ylabel('y').4 Examplo de Script O código abaixo imprime mensagem de cumprimento. disp(timex). >> [cx. 2. if time(5)<10 minstr = [' '.. minstr].axis('equal'). title(['Circle of unit radius r = '.cy] = circlefn(2. time = fix(clock). disp('Hello! How are you today?').. % get time as integers hourstr = int2str(time(4)).3. .num2str(r)]). xlabel('x'). >> [x... disp(' ').y] = circlefn(r). end timex = [hourstr ':' minstr]. >> circlefn(1).5). disp('Today is. dia do mês e hora. disp(' '). >> circlefn(r^2/(r+5*sin(r))). >> r = 5. disp(date).

1:3) 3. >> B = [0 0 0. .. (5*x-23)/55 x-3 x*sin(x) sqrt(3)] 3.1 Matrizes e vetores 3.:) = [B(1:3. Computação Iterativa 3. 3/(x+2*log(x)) 3 0 6. as linhas 1. 3 9 0] >> x = pi >> B = [2*x log(x)+sin(y). .55*sin(x) 9. 4 e 5. 2 3 4 5 1.097.:) pega as linhas de Q cujas entradas de v são não nulas. % vetor/matriz vazia A = [1/3 5. . a saber. 3 4 5 1 2. y é um vetor linha com 20 colunas >> A([1 3 6 9].1. v = [1 0 0 1 1] e Q é uma matriz 5 x 5 Então Q(v.1. >> Q = [1 2 3 4 5.1.3) >> C = [0 0 0..35 0. 1 2 3] >> C(3.3 Multiplicação de matrizes Exemplos ● ● ● A é uma matriz 10 x 10 B é uma matriz 5 x 10. y(1:10)] Uma forma mais sofisticada de indexação é fazer uso de vetores 0-1 para fazer referência a matrizes. Por exemplo.2 Índices A(i.555.. 0 0 5] >> B(2.3.. 5i 3*2i] >> x = [].:)].1 Entrada de matrizes/vetores >> A = [1 2 5. 0 0 0.j) se refere ao elemento da linha i e coluna j da matriz A.

n) rand(m. k k+1 k+2].1) % retorna a primeira diagonal acima da diagonal principal . B = A' corresponde a AT Para uma matriz de complexos A. :) = []. for k=1:3. B = A' produz conjugado(A)T Inicialização de matrizes >> m = 3 >> n = 3 >> A = zeros(m. % deleta colunas 3.n) % matriz com 1's na diagonal principal zeros(m.:) Transpose ● ● ● Para uma matriz rde reais.n) ones(m.3:5) = []. % deleta a 2a linha >> A(:.n) Inicialização dinâmica. % deleta linhas 1 e 3 Matrizes comuns eye(m.:) = []. Utilize [] e laços for ou while Adicionando uma linha ou coluna ● ● ● O comando A =[A u] adiciona o vetor coluna u ao conjunto de colunas de A.n) % matriz de números aleatório distribuídos de forma uniforme diag(v) % gera uma matriz diagonal cujos valores são provenientes do vertor 1 diag(A) % obtém uma matriz com a diagonal de A diag(A. v] adiciona o vetor linha v ao cojunto de linhas de A. B=[B. 5 1 2 3 4] >> v = [ 1 0 0 1 1]. 4 e 5 >> A([1 3].4 5 1 2 3. B = []. Eliminando uma linha ou coluna >> A(2. A = [A. >> Q(v.

b...Criando vetores a = 0:10:100 % produz [0 10 20 . com % números linearmente espaçados u = linspace(0.3.4) % produz [1 10 100 1000] 3..1 Operações Aritméticas A + B % A e B devem ter as mesmas dimensões A–B A*B % válida se o número de colunas de A é igual ao número de linhas de B A/B = A.2.b... 10] u = [1:10 33:-2:19] linspace(a.] C = A.] u.^v % produz [u1^v1 u2^v2 ./v % produz [u1/v1 u2/v2 ..5) logspace(a.. 2*pi] u = 2:10 % [2 3 4 . ] u....20.^2 Alguns exemplos .2 Operações com matrizes 3. 100] b = 0:pi/5:2*pi % produz [0 pi/50 2*pi/50 ..*v % produz [u1v1 u2v2 .*B % produz Cij = AijBij Claramente A^2 é diferente de A.n) % produz um vetor de comprimento n de a até b.B^-1 % válida para matrizes quadradas de mesmo tamanho. onde B % é inversível A^2 = A*A % A deve ser uma matriz quadrada Divisão à esquerda x = A \ b corresponde a solução do sistemas A x = b x = A^-1*b Operações com matrizes e vetores u..n) logspace(0.

^2 proudz a matriz (aij)^2 Operações relacionais Há seis operadores relacionais: ● < ● <= ● > ● >= ● == ● ~= (diferente) Se x = [1 5 3 7] e y [0 2 8 7]. as operações são executadas elemento a elemento. pois x ou y é não nulo ● ~(x | y) produz [1 0 0 0] Outras operações isfinite % retorna true (1) para todos os elementos finitos da matriz isnan % retorna true (1) para todos os elementos que não são números find % retorna os índices dos elementos não nulos da matriz .' precede o operador aritmético.:)' >> x'*x >> x*x' >> A*x >> A^2 >> A.^2 % quando o '. então: ● x < y produz [0 0 1 0] ● x <= y produz [0 0 1 1] ● x > y produz [1 1 0 0] ● x >= y produz [1 1 0 1] ● x == y produz [0 0 0 1] ● x ~= y produz [1 1 1 0] Operações lógicas Os operadores lógicos são: &. |. 4 5 6.>> A = [1 2 3. 7 8 9] >> x = A(1. logo A. ~ e xor Para x = [0 5 3 7] e y = [0 2 8 7] ● (x>y) & (x>4) produz [0 1 0 0] ● x | y produz [0 1 1 1].

33 2. então rem(a.5 7].66]) = [-3 2] arredonda na direção +infinito ceil([-2. 'string'. b = [2 3].33 2.66]) = [-1 1] ● ● ● ● ● 3.66]) = [-2 2] arredonda na direção -infinito floor([-2. por exemplo.4 Funções matemáticas elementares Funções exponenciais ● exp exponencial ● log logaritmo natural ● log10 logaritmo na base 10 ● sqrt raiz quadrada Funções complexas ● ● ● ● ● abs angle conj imag real valor absoluto fase do número do complexo conjugado parte imaginária parte real Funções de arredondamento ● fix floor ceil round rem sign arredonda na direção do 0 exemplo: fix([-2.b) = [-1.44 2.2.33 2.6 Trabalhando com cadeias de caracteres Cadeias de caracteres são delimitadas pelo apóstrofe (').Para x = [0 2 5 7].2.5 1] sinal sing([-2. fazendo: . >> message = 'deixe me em paz' Podemos criar um vetor com uma lista de nomes. find(x) retorna [2 3 4] 3.66]) = [-2 3] resto após divisão inteira se a = [-1.66]) = [-2 3] arredonda na direção do inteiro mais próximo round([-2.44 2.

'ola'. você pode usar comando help para obter informações de uso Se você não sabe.3 Usando funções internas do MatLab ● ● Se você sabe o nome da função. que executa os comandos contidos em uma string. 'Carla'.4 Salvando e carregando dados O comando save pode ser usado para salvar todo o workspace ou apenas algumas variáveis. 'boa noite') Manipulando cadeias de caracteres >> [oi(2.:) nomes(3.>> nomes = ['Joao'. 'Marcelo'] Outra forma e construir uma matriz é com o comando str2mat: >> oi = str2mat('oi '. eval. então use o comando lookfor string para buscar informações sobre string >> lookfor eigenvalue >> help eig 3. >> eval('x = 5*sin(pi/3)') 3. ● Os dados podem ser salvos em arquivos binários . 'Maria'.mat .:)] % produz “ola Carla” Funções adicionais ● ● ● ● ● ● ● ● ● ● abs blanks(n) deblank eval findstr int2str isstring lower num2str strcmp converte a string em códigos ASCII cria uma string de n brancos remove brancos do fim da string executa a string como comandos encontra uma sub-string específica dentro de outra string converte um inteiro em string retorna 1 se o argumento é uma string conver caixa-alta para caixa-baixa converte um número em string compara duas strings Avaliação de funções Matlab oferece uma função poderosa.

>> title('Um grafico 2-D simples').5 Traçando gráficos simples >> x = 0:.mat x y save dados.mat carrega os dados armazenados em dados.eps -deps . >> plot(x.1:20.dat salvo toda a área de trabalho no arquivo matlab.mat carrega a área de trabalho a partir do arquivo matlab.mat ● ● ● 3.y) >> xlabel('Tempo (t) em segundos (s)').1*x). >> ylabel('Resposta em amplitude em mm').● ou em arquivos tipo texto Alguns exemplos de comandos úteis: ● ● save dados.dat x -ascii save load load dados salva as variáveis x e y salva a variável x em formato ASCII no arquivo dados.sin(x). >> y = exp(0. >> print resp_amp.