Matlab introdução

63
MATLAB/Simulink/CVX Ramon Mayor Martins - [email protected] Ricardo Augusto da Silva Junior - [email protected] Rodrigo Cogliatti – [email protected]

Transcript of Matlab introdução

Page 1: Matlab introdução

MATLAB/Simulink/CVX

Ramon Mayor Martins - [email protected] Augusto da Silva Junior - [email protected] Cogliatti – [email protected]

Page 2: Matlab introdução

PARTE 3:• Declaração de Variáveis• Números,Vetores e Matrizes• Operadores e Funções• Comandos Básicos• Vetores Sequenciais• Funções Matriciais

PARTE 1 :• Histórico

MATLAB/Simulink/CVX

PARTE 2:• Overview Matlab• Comparações• Potencialidade

PARTE 4:• Operadores Booleanas• Condicionais• Controles de Fluxos (Laços)• Scripts e Funções• Gráficos

Segunda-Feira: Introdução ao MATLAB Terça-Feira: Programação no MATLAB

PARTE 5:Técnicas de Programação

Page 3: Matlab introdução

PARTE 3:• Declaração de Variáveis• Números,Vetores e Matrizes• Operadores e Funções• Comandos Básicos• Vetores Sequenciais• Funções Matriciais

PARTE 1 :• Histórico

MATLAB/Simulink/CVX

PARTE 2:• Overview Matlab• Comparações• Potencialidade

PARTE 4:• Operadores Booleanas• Condicionais• Controles de Fluxos (Laços)• Scripts e Funções• Gráficos

Segunda-Feira: Introdução ao MATLAB Terça-Feira: Programação no MATLAB

PARTE 5:Técnicas de Programação

Page 4: Matlab introdução

Histórico

Page 5: Matlab introdução

Histórico

O Criador!

Cleve Moler

• Ph.D em Matemática pela Universidade de Stanford

• Professor de Matemática e Ciencia da Computação

em Stanford

• Autor do LINPACK e EISPACK (bibliotecas de FORTRAN

para calculos numéricos)

• Fundador da Mathwork

• Criador do MATLAB

Page 6: Matlab introdução

Histórico

A Inspiração!

James Hardy Wilkinson (1919-1986)

• Foi a maior autoridade em analises numéricas

e calculos matriciais.

• Pesquisou Algoritmos de Autovalores

• Suas implementações em ALGOL levaram

diretamente ao EISPACK (fundamento

matemático do primeiro MATLAB)

Page 7: Matlab introdução

Histórico

A Inspiração!

James Hardy Wilkinson (1919-1986)

• No começo da 2ª Guerra Mundial juntou-se

ao time de matemáticos em Cambridge.

• Calculavam trajetórias de projéteis de

artilharia usando calculadoras mecânicas.

• Tambem pesquisou sobre a Termodinamica

das Explosoes.

Page 8: Matlab introdução

Histórico

A Inspiração!

James Hardy Wilkinson (1919-1986)

• Com o fim da 2ª guerra, Jim transferiu-se para

o NPL (National Physical Laboratory), onde se

tornou assistente de Alan Turing.

• Jim lecionava cursos de métodos numéricos

na Universidade de Michigan.

• Descreveu as Matrizes Tridiagonais ( hoje

conhecidas como Matrizes Wilkinson).

Page 9: Matlab introdução

Histórico

A Inspiração!

James Hardy Wilkinson (1919-1986)

• Muito da pesquisa de Wilkinson foi publicado em uma

série de artigos na revista Numerische Mathematik no final

dos anos 60

• Os artigos descreviam algoritmos para computacao de

matrizes e incluia programas em ALGOL 60.

• Os codigos em ALGOL fornecem uma descricao legivel das

tecnicas que se encontram na biblioteca do MATLAB

• Wilkinson nao esta diretamente envolvido com o

MATLAB, mas com certeza foi a principal fonte

Page 10: Matlab introdução

Histórico

3 Homens chave na origem do MATLAB!

George ForsytheJohn Todd

• 2 Matemáticos da INA (Institute for

Numerical Analysis), trabalharam em um dos

primeiros computadores dos USA, em

meados de 1957.

• Quando INA foi dissolvido, George Forsythe

foi para Stanford e Todd foi para a Caltech

Page 11: Matlab introdução

Histórico

3 Homens chave na origem do MATLAB!

George ForsytheJohn Todd

• Cleve Moler foi para a Caltech em 1957 e conheceu John Todd

• Sob orientação de John Todd , Cleve Moler estudou as matrizes de Hilbert

• Cleve Moler , escreveu seus programas usando fita, e queria calcular a inversa de H

• Ao se graduar, John Todd recomendou Stanford para Cleve trabalhar com Forsythe.

• Forsythe estava criando o departamento de ciencia da computação em Stanford

(um dos primeiros do mundo).

Page 12: Matlab introdução

Histórico

A Origem do MATLAB !

• Em 1962, Cleve Moler criou um programa

em FORTRAN para resolver sistemas de

equações lineares (em cartão perfurado)

• Em 1965 sob orientação de Forsythe,

defendeu a tese “Finite Difference Methods

for the Eigenvalues of Laplaces Operator”,

no qual Forsythe e Wilkinson trabalharam

mais cedo , como L-Shaped Membrane.

• QUE É O LOGO DA MATHWORKS !!!

Page 13: Matlab introdução

Histórico

A Origem do MATLAB !

Page 14: Matlab introdução

Histórico

A Origem do MATLAB !

• -EM 1967 Forsythe e Cleve publicaram um livro sobre Matriz computacional;, que

continha programas em Algol, Fortran e PL/I para resolver sistemas de equacoes

lineares.

• -Pesquisadores da Argonnes National Lab, traduziram os codigos para calculo de

matriz de autovalores de Wilkinson em FORTRAN, produzindo o EISPACK, seguido

para LINPACK, um pacote de programas em FORTRAN para resolver equacoes

lineares.

Page 15: Matlab introdução

Histórico

A Origem do MATLAB !

• Cleve queria possibilitar o uso de novos pacotes sem escrever programas em

FORTRAN, então estudou o livro de Niklaus Wirth para aprender sobre analise de

linguagens de computador.

• Em 1970, usando a metodologia de Niklaus e porções do LINPACK e EISPACK Cleve

desenvolveu a primeira versão do MATLAB.

• -Com apenas 80 funções, ainda sem m-files ou toolboxes, se vc quisesse adicionar

funcoes, teria que modificar o codigo fonte FORTRAN e recompilar.

Page 16: Matlab introdução

Histórico

A Origem do MATLAB !

Niklaus Wirth, foi o inventor e desenvolvedor da linguagem PASCAL

Help command

Page 17: Matlab introdução

HistóricoO Primeiro MATLAB !

• -O primeiro Matlab rodou em um

Tektronix 4081, que Argonne Lab

adquiriu em 1978, tinha 64k d

memoria.

• -Em 1981, Jack Little um

engenheiro do MIT e Stanford, foi

o principal desenvolvedor do

produto comercial baseado em

Fortran MATLAB. Quando a IBM

anunciou seu primeiro PC em 81,

Jack Little anteviu a possibilidade

d uso do MATLAB nesse sistema.

• -Ele e um amigo, Steve Bangert reprogramaram o

MATLAB em C e adicionou m-files, toolboxes e

muitos graficos poderosos.

• Os 3 foram os fundadores da Mathworks em

1984.

Page 18: Matlab introdução

PARTE 3:• Declaração de Variáveis• Números,Vetores e Matrizes• Operadores e Funções• Comandos Básicos• Vetores Sequenciais• Funções Matriciais

PARTE 1 :• Histórico

MATLAB/Simulink/CVX

PARTE 2:• Overview Matlab• Comparações• Potencialidade

PARTE 4:• Operadores Booleanas• Condicionais• Controles de Fluxos (Laços)• Scripts e Funções• Gráficos

Segunda-Feira: Introdução ao MATLAB Terça-Feira: Programação no MATLAB

PARTE 5:Técnicas de Programação

Page 19: Matlab introdução

O MATLAB

• MATLAB não é somente uma toolkit é um workbench segundo Doug Hull

• O MATLAB (abreviatura de Matrix Laboratory) é um programa paradesenvolvimento e implementação de algoritmos numéricos ou simbólicos queoferece ao usuário um ambiente interativo de programação para estudo e pesquisanas diversas áreas das ciências exatas.

• O MATLAB tem matrizes como elemento basico para manipulacao de dados.

• Robusto quando se requer tratamento de sistemas criticos com grande exigencia

de capacidade numerica.

• MATLAB é uma linguagem orientada a objeto ,possui a linguagem procedural como

base , e a programação estruturada como veículo.

Page 20: Matlab introdução

Comparação:MATLAB e Linguagem C:

MATLAB C

Tradutor Interpretável Compilável

Linguagem de Programação

Dynamic Typing(verificação em tempo de execução)

Static Typing(verificação em tempo de compilação)

Leitura Top Down Top Down

Variáveis Em tempo de programação

Globais e Locais no escopo

Internamente LAPACK e outros Bibliotecas para funções

Elemento Básico Matriz Byte

Formato Maximo LongE Long double

Indicador de fim de função

Linha abaixo ponto e vírgula

Plataformas Somente em MATLAB Multi-plataformas

Page 21: Matlab introdução

Comparação:MATLAB e Linguagem C:

MATLAB C

Complexidade de Sistemas

baixa alta

Funcoes Alta (inclusive contando com ANSI C) + proprias

ANSI C / Borland / + proprias

Funcionalidades Workbench + Toolkit + Linguagem

Linguagem

Tempo de Programação Baixo alto

Apontadores Cell Array Ponteiros

Robustez Matematica Alto devido a herança do FORTRAN

baixo

Robustez Computacional Alto (JIT) alto

Embarcação possibilidade (HDL) finalidade

Executável VB + compilador + .mex Finalidade (obj + exe)

Page 22: Matlab introdução

Comparação:MATLAB e MATHEMATICA:

MATLAB MATHEMATICA

Funcoes Matriciais Maior Menor

Funcoes Gerais Mais funções implementadas

Menor que o MATLAB

Matemática Numerica menor Maior de todasferramentas

Funcoes de Probab. e Estatistica

menor Maior de todas ferramentas

Funcoes de DSP maior menor

Funcoes Algebricas maior menor

Capacidade Grafica maior menor

Funcionalidade de Programação

maior menor

Page 23: Matlab introdução

Comparação:MATLAB e MATHEMATICA:

MATLAB MATHEMATICA

Importação e Exportação de Dados

menor maior

Capacidade de Processamento de Dados

maior menor

Tempo de Processamento

maior menor

Similaridade de Programação

BASIC, FORTRAN LISP,APL

Testes Gerais¹ 69.58% 71.05%

Usabilidade,Facilidade menor maior

¹ http://www.scientificweb.com/ncrunch/ncrunch5.pdf

Page 24: Matlab introdução

Potencialidades do MATLAB e Simulink

[JPL NASA] - Projeto Curiosity

-Engenheiros da JPL usaram MATLAB e Simulink para numerosas fases do MER (Mars

Exploration Rover), incluindo navegação e analise de dados.

-Usaram o Matlab para entender mais sobre os dados geologicos que o Curiosity coletará.

Page 25: Matlab introdução

Potencialidades do MATLAB e Simulink

[U.S Airforce] – Projeto F-22 Raptor

-Projeto: Propulsores do F-22, calcular a recuperacao de entrada e de distorção espacial e

planar.Testes de desempenho do motor.

-Projeto: Usaram Signal Processing Toolbox para remover o ruído e extrair frequencias de

dados de séries temporais.

"We need to identify the cause of an anomaly in test data to determine if we can fly the next

day. We don’t have enough time to conduct our analysis with C++. MATLAB helps us get answers immediately because it is quick, easy, and intuitive.“

Page 26: Matlab introdução

Potencialidades do MATLAB e Simulink

[European Aeronautic Defence and Space Company (EADS)] – Projeto Astrium System

-Laser Optical Link Aircraft/Communication Satellite (50Mbp/s)

-Engenheiros usaram Simulink e Optimization Toolbox do MATLAB para simular e verificar os

algoritmos de controle, e implantação de sistemas em tempo real.

“With Simulink we can make the necessary modification, re-generate the software using Simulink Coder, and start the test again in a half-day.

Page 27: Matlab introdução

Potencialidades do MATLAB e Simulink

[Smithsonian Astrophysical Observatory (SAO)] - Projeto: X-Ray Telescope (XRT)

-Ajudar a compreender a dinamica da atmosfera do Sol, do plasma solar, corona

-Uso do Simulink para modelar efeitos de imagem com várias fontes de distorção

Page 28: Matlab introdução

Potencialidades do MATLAB e Simulink

As Aplicações são infinitas:

Controle de Sistemas, DSP, Processamento de Imagens, Mecatronica, Robôtica, IA, Sistemas

de Telecomunicações, Energia, Areas biológicas, médicas, aeroespaciais, defesa, mineração,

automobilística, economia, etc...

Page 29: Matlab introdução

Produtos – Plataformas Mathworks

Page 30: Matlab introdução

Interface com outras Plataformas

Page 31: Matlab introdução

PARTE 3:• Declaração de Variáveis• Números,Vetores e Matrizes• Operadores e Funções• Comandos Básicos• Vetores Sequenciais• Funções Matriciais

PARTE 1 :• Histórico

MATLAB/Simulink/CVX

PARTE 2:• Overview Matlab• Comparações• Potencialidade

PARTE 4:• Operadores Booleanas• Condicionais• Controles de Fluxos (Laços)• Scripts e Funções• Gráficos

Segunda-Feira: Introdução ao MATLAB Terça-Feira: Programação no MATLAB

PARTE 5:Técnicas de Programação

Page 32: Matlab introdução

Enfim...O MATLAB !

Page 33: Matlab introdução

Ambiente de Desenvolvimento

Command Window

Workspace

Directory-Folder

Command History

Page 34: Matlab introdução

Criação de Variáveis

Worksapce

Page 35: Matlab introdução

Conceitos BásicosDeclaração de Variáveis

No MATLAB o nome da variável deve serAlfanumérico começado com letra eSucedido do = que significa atribuição

É case senstive, isto é diferencia maiúsculas de minúsculas

Ficam armazenadas em memória em uma região denominada workspace

>> x = 12

x =

12

Isso é um escalar !

Page 36: Matlab introdução

Conceitos Básicos<<Números , Vetores e Matrizes >>

- O elemento básico do MATLAB é a matriz- um número (escalar) no MATLAB é uma matriz com dimensão 1x1- O MATLAB utiliza:

. para indicar a casa decimale para notação científicai e j para números complexos.

Page 37: Matlab introdução

Conceitos Básicos<<Números , Vetores e Matrizes >>

- FORMATOS: short 4 digitos decimaislong 15 digitos decimaisshort e 4 digitos notacao exponenciallong e 15 digitos notacao exponenciallong g escolhe o melhor longshor g escolhe o melhor shortbank 2 digitos decimais (centavos)

>> format short>> pi

ans =

3.1416

>> format long e>> pi

ans =

3.141592653589793e+000

Page 38: Matlab introdução

Conceitos Básicos<<Números , Vetores e Matrizes >>

- VETORES e MATRIZES:- - Vetores e Matrizes sao definidos entre [ ]- - as colunas sao delimitadas por , ou espaço- - as linhas sao delimitadas por ; dentro dos colchetes

>> vetor_linha = [1 2 3 4]

vetor_linha =

1 2 3 4

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

vetor_coluna =

1234

Page 39: Matlab introdução

Conceitos Básicos<<Números , Vetores e Matrizes >>

- VETORES e MATRIZES:

>> matriz_3x3 = [1 2 3 ; 4 5 6 ; 7 8 9]

matriz_3x3 =

1 2 34 5 67 8 9

- é possivel na regiao workspace editar a variável utilizando o Array Editor

Page 40: Matlab introdução

Conceitos Básicos<<Operadores e Funcoes>>

- OPERADORESOs operadores no MATLAB lidamcom situacoes matriciais e escalares.

+ soma- subtracao* multiplicação matricial.* multiplicação escalar/ divisao matricial (a/b equivale a*b^-1)\ divisao matricial (a\b equivale a^-1 *b)./ divisao escalar^ potenciacao.^ potencia escalar

>> a = 1

a =

1

>> b = 2

b =

2

>> soma = a+b

soma =

3

>> multiplica = a*b

multiplica =

2

Page 41: Matlab introdução

Conceitos Básicos<<Operadores e Funcoes>>

- OPERADORESOs operadores no MATLAB lidamcom situacoes matriciais e escalares.

+ soma- subtracao* multiplicação matricial.* multiplicação escalar/ divisao matricial (a/b equivale a*b^-1)\ divisao matricial (a\b equivale a^-1 *b)./ divisao escalar^ potenciacao.^ potencia escalar

>> a = [1 2 ; 3 4]

a =

1 23 4

>> b = [5 6; 7 8]

b =

5 67 8

>> multiplica = a*b

multiplica =

19 2243 50

Page 42: Matlab introdução

Conceitos Básicos<<Operadores e Funcoes>>

- EXPRESSOES

Expressoes no MATLAB são compostasde numeros, vetores, matrizes, variaveis,operadores, funcoes.

As expressoes sao avaliadas pelaprecedencia.

A precedencia no MATLAB é o ( )

O MATLAB irá resolver o que está dentrodo parênteses primeiro.

>> a = 2+(4/2)+1

a =

5

>> b = (2+4)/2+1

b =

4

>> c = (2+4)/(2+1)

c =

2

Page 43: Matlab introdução

Conceitos Básicos<<Operadores e Funcoes>>

- FUNCOES TRIGONOMETRICAS

O MATLAB fornece uma completa listade funções trigonométricas.

Há as relações elementares e as relaçõesem graus.

Para mais detalhes digite:

>>help elfun

Mais procurados:

sin(x) , cos(x), tan(x), sec(x)sind(x), cosd(x), tand(x) ...

>> sind(45)

ans =

0.7071

>> tand(90)

ans =

Inf

>> sin(0.5)

ans =

0.4794

Page 44: Matlab introdução

Conceitos Básicos<<Operadores e Funcoes>>

- FUNCOES EXPONENCIAIS

O MATLAB fornece uma completa listade funções exponenciais.

Para mais detalhes digite:

>>help elfun

Mais procurados:

sqrt()log()log10()log2()exp()

>> exp(2)

ans =

7.3891

>> sqrt(4)

ans =

2

>> log(3)

ans =

1.0986

Page 45: Matlab introdução

Conceitos Básicos<<Comandos Básicos>>

!chama um comando do sistemaoperacional.a cor muda pra identificar que se estachamando um shell

clclimpa a tela

whoretorna as variaveis q foram usadas

>> ! ping www.google.com

Disparando www.google.com [74.125.234.51] com 32 bytes de dados: Resposta de 74.125.234.51: bytes=32 tempo=20ms TTL=56 Resposta de 74.125.234.51: bytes=32 tempo=18ms TTL=56 Resposta de 74.125.234.51: bytes=32 tempo=18ms TTL=56 Resposta de 74.125.234.51: bytes=32 tempo=18ms TTL=56

>> clc

>> who

Your variables are:

a b matriz_3x3 soma vetor_linhaans c multiplica vetor_coluna x

Page 46: Matlab introdução

Conceitos Básicos<<Comandos Básicos>>

ansretorna o valor da ultima variavel,significa answer

clearelimina todas variáveis do sistema oualgumas em especial

whoslista as propriedades da variável(nome,tamanho,número de bytes eclasse)

>> ans

ans =

1.0986

>> clear b>> whosName Size Bytes Class Attributesa 1x1 8 doubleAns 1x1 8 double

Page 47: Matlab introdução

Conceitos Básicos<<VETORES SEQUENCIAIS>>

O simbolo : pode ser utilizado para definir vetores sequenciais-de:até>>v=0:10

>> v=0:10

v =

0 1 2 3 4 5 6 7 8 9 10

>> v=0:10

v =

0 1 2 3 4 5 6 7 8 9 10

>> v1=0:2:10

v1 =

0 2 4 6 8 10

>> v2=30:-3:10

v2 =

30 27 24 21 18 15 12

-de:espaçados:até>>v1=0:2:10>>v2=30:-3:10

Page 48: Matlab introdução

Conceitos Básicos<<VETORES SEQUENCIAIS>>

-função linspace-cria vetores linearmente espaçados- de,até,com N elementos>>linspace(1,10,5)>>linspace(1,10,10)

- se o numero de elementos nao for declarado,o MATLAB assume por default 100>>linspace(1,10)

>> linspace(1,10,5)

ans =

1.0000 3.2500 5.5000 7.7500 10.0000

>> linspace(1,10,10)

ans =

1 2 3 4 5 6 7 8 9 10

Page 49: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Como ja visto, matrizes saodelimitadas por [ ]

>>A = [1 2 3;3 4 5;3 8 3]

-Transposta da MatrizA'

-Inversa da Matrizinv(A)

>> A = [1 2 3;3 4 5;3 8 3]

A =

1 2 33 4 53 8 3

>> A'

ans =

1 3 32 4 83 5 3

>> inv(A)

ans =

-1.4000 0.9000 -0.10000.3000 -0.3000 0.20000.6000 -0.1000 -0.1000

Page 50: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Determinante da Matrizdet(A)

-Diagonal principal da Matrizdiag(A)

-Traço (soma dos elementos dadiagonal) da Matriztrace(A)

-Criando uma matriz identidadeeye(2) %dimensao quadradaeye(2,3) %dimensao informada

>> det(A)

20.0000

>> diag(A)

143

>> trace(A)

ans =

8

>> eye(2)

ans =

1 00 1

Page 51: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Acessando elementos:>>A(1,1)>>A(3,3)

-Acessando elementos particulares-B recebe os elementos da 2a linhacomeçando da 2a até a 3a coluna>>B = A(2,2:3)

-B recebe os elementos da 2a linha, a1a coluna E a 3a coluna somente>>B = A(2,[1 3])

-C recebe a 3a coluna de A>>C = A(:,3)

-D recebe a 1a linha de A>>D = A(1,:)

>> A

A =

1 2 33 4 53 8 3

>> A(1,1)

ans =

1

>> A(2,2:3)

ans =

4 5

Page 52: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Reformatando as dimensões de umamatriz (mantendo o numero originalde elementos)>>Y = [4 3 2 ;1 2 9]>>YY = reshape(Y,1,6)

-Organizando a nova matriz>> sort(Y)>> sort(Y,'ascend')>> sort(Y,'descend')

>> Y

Y =

4 3 21 2 9

>> sort(Y)

ans =

1 2 24 3 9

>> sort(Y,'descend')

ans =

4 3 91 2 2

Page 53: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Numero de elementos da matriz>>numel(Y)

-Dimensao da Matriz (linhas xcolunas)>>size(Y)>>[i,j] = size(Y)

-Dimensao das colunas>>length(Y)

-Dimensao das linhas>>ndims(Y)

>> Y

Y =

4 3 21 2 9

>> numel(Y)

6

>> size(Y)

2 3

>> length(Y)

3

>> ndims(Y)

2

Page 54: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Retorna matriz triangular>> tril(A) %inferior>> triu(A) %superior

>> A = [1 2 3 4; 5 6 7 8; 9 2 3 4; 5 6 7 8]

A =

1 2 3 45 6 7 89 2 3 45 6 7 8

>> tril(A)

ans =

1 0 0 05 6 0 09 2 3 05 6 7 8

Page 55: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Analise de elementos>> mean(A)>> sum(A)>>min(A)>>max(A)

>> A

A =

1 2 34 5 6

>> mean(A)

ans =

2.5000 3.5000 4.5000

>> sum(A)

ans =

5 7 9

Page 56: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Comando find-Retorna os indices dos elementos damatriz que forem diferentes de 0 ou qsatisfaçam a condição determinada>>find(H)>>find(H < 20)

>> H = [30 20 10 0 10]

H =

30 20 10 0 10

>> find(H<20)

ans =

3 4 5

Page 57: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Comando find-Retorna os indices dos elementos damatriz que forem diferentes de 0 ou qsatisfaçam a condição determinada>>ones(2,5)>>zeros(2,5)

>> ones(2,5)

ans =

1 1 1 1 11 1 1 1 1

>> zeros(2,5)

ans =

0 0 0 0 00 0 0 0 0

Page 58: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Comando find-Retorna os indices dos elementos damatriz que forem diferentes de 0 ou qsatisfaçam a condição determinada>>ones(2,5)>>zeros(2,5)

>> ones(2,5)

ans =

1 1 1 1 11 1 1 1 1

>> zeros(2,5)

ans =

0 0 0 0 00 0 0 0 0

Page 59: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Vetor multidimensional (2 planos)>>X = [1 2 3; 4 5 6; 7 8 9]>>X(:,:,2) = [2 3 4; 5 0 2; 8 3 3]%Quer acessar o elemento da 2alinha, da 3a coluna, da matriz 2

>> X(:,:,2) = [2 3 4;5 0 2;8 3 3]

X(:,:,1) =

1 2 34 5 67 8 9

X(:,:,2) =

2 3 45 0 28 3 3

Page 60: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

-Celulas (Indexam vários elementosem uma celula, considerada umamatriz de elementos de naturezadistinta - Tabela de apontadores -funcionam como a struct em C ,inclusive há no Matlab tb a struct, q ésemelhante a cell)

>> cell = {pi 2 eye(3) [1 2 3] [0:5]}

cell =

[3.1416] [2] [3x3 double] [1x3 double] [1x6 double]

>> cell{5}

ans =

0 1 2 3 4 5

>> celula = cell{5}

celula =

0 1 2 3 4 5

>> celula(3)

ans =

2

Page 61: Matlab introdução

Conceitos Básicos<<FUNCOES MATRICIAIS>>

E da pra piorar.... Cell Array Multidimensional !!!

Page 62: Matlab introdução

PARTE 3:• Declaração de Variáveis• Números,Vetores e Matrizes• Operadores e Funções• Comandos Básicos• Vetores Sequenciais• Funções Matriciais

PARTE 1 :• Histórico

MATLAB/Simulink/CVX

PARTE 2:• Overview Matlab• Comparações• Potencialidade

PARTE 4:• Operadores Booleanas• Condicionais• Controles de Fluxos (Laços)• Scripts e Funções• Gráficos

Segunda-Feira: Introdução ao MATLAB Terça-Feira: Programação no MATLAB

PARTE 5:Técnicas de Programação

PARTE 6:Aplicação DSP

Page 63: Matlab introdução

Por hoje chega... ;D