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

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 • • • . Programas são escritos em M-files Mat-files: arquivos binários de dados.m” do tipo ASCII.5) Matlab é independente de plataforma • • • Executando Matlab Salvando arquivos Imprimindo 1. todas as variáveis são eliminadas o clear x y z : limpa apenas x.5.5. 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.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-.5.4) Tipos de Arquivos • • • M-files: arquivos com extensão “.e mex-files do disco o clear: limpa o workspace. mat.• o format rat o format bank Histórico de comandos: usar up-arrow 1. Há dois tipos de arquivos: script files e function files.

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

*z >> b = 2*a >> x = linspace(0.*y . espaçados linearmente entre % 0 e 10 >> y = sin(x) % operadores sin pode ser aplicada a vetores >> z = sqrt(x).5).2.2 Criando e trabalhando com matrizes de números >> x = [1 2 3] >> y = [1. 3] >> z = [ 2 1 0] >> a = x + z >> b = x + y >> a = x.10. % cria vetor com 5 elementos. 2. Tutorial 2.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.

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

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

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

A = [A.:) Transpose ● ● ● Para uma matriz rde reais.n) rand(m. B = A' produz conjugado(A)T Inicialização de matrizes >> m = 3 >> n = 3 >> A = zeros(m. >> Q(v. 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. 5 1 2 3 4] >> v = [ 1 0 0 1 1]. k k+1 k+2].:) = []. B = []. :) = []. B=[B. % deleta colunas 3.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.1) % retorna a primeira diagonal acima da diagonal principal .n) Inicialização dinâmica.3:5) = []. for k=1:3.4 5 1 2 3.n) % matriz com 1's na diagonal principal zeros(m. % deleta linhas 1 e 3 Matrizes comuns eye(m. Eliminando uma linha ou coluna >> A(2. B = A' corresponde a AT Para uma matriz de complexos A. v] adiciona o vetor linha v ao cojunto de linhas de A. 4 e 5 >> A([1 3].n) ones(m. % deleta a 2a linha >> A(:.

.20.. ] u..n) % produz um vetor de comprimento n de a até b..b. 100] b = 0:pi/5:2*pi % produz [0 pi/50 2*pi/50 .3.n) logspace(0. 10] u = [1:10 33:-2:19] linspace(a.2... 2*pi] u = 2:10 % [2 3 4 . 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./v % produz [u1/v1 u2/v2 .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.5) logspace(a..*v % produz [u1v1 u2v2 .Criando vetores a = 0:10:100 % produz [0 10 20 .^2 Alguns exemplos ..2 Operações com matrizes 3.B^-1 % válida para matrizes quadradas de mesmo tamanho.] u.*B % produz Cij = AijBij Claramente A^2 é diferente de A.. com % números linearmente espaçados u = linspace(0....b.4) % produz [1 10 100 1000] 3.^v % produz [u1^v1 u2^v2 .] C = 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].^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]. 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: &.' precede o operador aritmético.>> A = [1 2 3. logo A. 7 8 9] >> x = A(1. 4 5 6. 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 .:)' >> x'*x >> x*x' >> A*x >> A^2 >> A. as operações são executadas elemento a elemento.^2 % quando o '.

66]) = [-1 1] ● ● ● ● ● 3.66]) = [-2 3] resto após divisão inteira se a = [-1.6 Trabalhando com cadeias de caracteres Cadeias de caracteres são delimitadas pelo apóstrofe (').2.b) = [-1. então rem(a.5 1] sinal sing([-2.2.66]) = [-2 3] arredonda na direção do inteiro mais próximo round([-2. fazendo: .33 2. >> message = 'deixe me em paz' Podemos criar um vetor com uma lista de nomes.Para x = [0 2 5 7].66]) = [-3 2] arredonda na direção +infinito ceil([-2.33 2. find(x) retorna [2 3 4] 3.44 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 = [2 3].5 7].33 2. 'string'.66]) = [-2 2] arredonda na direção -infinito floor([-2.44 2.

:)] % 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.4 Salvando e carregando dados O comando save pode ser usado para salvar todo o workspace ou apenas algumas variáveis. eval. que executa os comandos contidos em uma string. 'boa noite') Manipulando cadeias de caracteres >> [oi(2. então use o comando lookfor string para buscar informações sobre string >> lookfor eigenvalue >> help eig 3.'ola'.>> nomes = ['Joao'. 'Maria'.:) nomes(3. você pode usar comando help para obter informações de uso Se você não sabe. 'Marcelo'] Outra forma e construir uma matriz é com o comando str2mat: >> oi = str2mat('oi '. 'Carla'.mat .3 Usando funções internas do MatLab ● ● Se você sabe o nome da função. >> eval('x = 5*sin(pi/3)') 3. ● Os dados podem ser salvos em arquivos binários .

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