2011 octave galo camargo

Upload: ofernandes2

Post on 13-Feb-2018

252 views

Category:

Documents


3 download

TRANSCRIPT

  • 7/23/2019 2011 Octave Galo Camargo

    1/17

    Autores:

    Mauricio Galo

    Paulo de Oliveira Camargo

    Presidente Prudente2011

    Introduo ao Octave

  • 7/23/2019 2011 Octave Galo Camargo

    2/17

    Universidade Estadual PaulistaFCT Campus de Presidente Prudente

    1

    Autores:

    MMMaaauuurrriiiccciiioooGGGaaallloooPPPaaauuulllooodddeeeOOOllliiivvveeeiiirrraaaCCCaaammmaaarrrgggoooDepartamento de Cartografia / FCT - UNESP

    IIInnntttrrroooddduuuoooaaaoooOOOccctttaaavvveee

    Universidade Estadual PaulistaFCT Campus de Presidente Prudente

    2

    XVIII SAGEC Seminrio de Avaliao do Curso deGraduao em Engenharia Cartogrfica

    Presidente Prudente01 a 03 de Junho de 2011

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    3

    XVIII SAGEC Seminrio de Avaliao do Curso deGraduao em Engenharia Cartogrfica

    01 e 03 de Junho de 2011

    Minicurso:IIInnntttrrroooddduuuoooaaaoooOOOCCCTTTAAAVVVEEE

    Autores:

    MMMaaauuurrriiiccciiioooGGGaaallloooPPPaaauuulllooodddeeeOOOllliiivvveeeiiirrraaaCCCaaammmaaarrrgggoooDepartamento de Cartografia / FCT - UNESP

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    4

    INTRODUO AO OCTAVECONTEDO PROGRAMTICO

    1. INTRODUO

    2. INICIANDO O OCTAVE

    3. OPERAES COM MATRIZES E VETORES

    4. GRFICOS

    5. ARQUIVOS SCRIPT

    6. CONTROLE DE FLUXO

    7. ABERTURA E VISUALIZAO DE IMAGENS

    8. IMPORTAO / EXPORTAO DE DADOS E CRIAO DE FUNES

    REFERNCIAS

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    5

    Este material foi preparado a partir das seguintes referncias (em ordem alfabtica):

    CORAL, A. M.; SANTOS, M. P.; BASTOS, T. D. A.; BORBA, M. Curso de Matlab.Universidade Federal de Santa Catarina, Dep. de Eng. de Produo, Programa Especial de

    Treinamento PET. Florianpolis SC, 1999. 29p.

    EATON, J. W.; BATEMAN, D.; HAUBERG, S. GNU Octave Edition 3 for Octave version3.2.3, July, 2007. 672p.

    HANSELMAN, D.; LITTLEFIELD, B. Matlab - Verso do Estudante: guia do usurio(Traduo). So Paulo: Makron Books, 1997. 305p.

    McANDREW, A. Introduction to Digital Image Processing with MATLAB. Thomson CourseTechnology, 2004. 509p. ISBN: 0-534-40011-6

    PAGAMISSE, A.; SOUZA, L. H. G. Introduo ao Software Octave. Semana de Cursos deMatemtica, Estatstica e Computao, 25-29 de agosto de 2003, FCT/UNESP, Presidente Prudente,

    2003. 54p.

    SIGMON, K. Matlab Primer Third Edition. Department of Mathematics, University of Florida,Gainesville, 1993. 35p. http://ise0.stanford.edu/Acessado em 05/maio/2003.

    ZERI, L. M. M. Apostila de Matlab. Instituto Nacional de Pesquisas Espaciais INPE, 2001. 19p.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    6

    1. INTRODUO

    1.1. O que OCTAVE

    O OCTAVE um aplicativo que foi originalmente desenvolvido com o propsito

    didtico, mais especificamente para o projeto de reatores qumicos e surgiu a partir da

    inteno de criar um aplicativo no qual a programao fosse mais rpida do que nas

    demais linguagens.

    Deste modo, os alunos poderiam dedicar mais tempo na anlise e soluo dos

    problemas de qumica, do que especificamente na implementao.

  • 7/23/2019 2011 Octave Galo Camargo

    3/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    7

    O seu desenvolvimento comeou por volta de 1988 e um de seus idealizadores foi

    John W. Eaton, alm de James B. Rawlingsda Universidade de Wisconsin-Madison e

    John G. Ekerdt da Universidade do Texas. Atualmente o desenvolvimento feito por

    vrios profissionais, de diferentes pases, sendo a sua distribuio de acordo com a licena

    GLP (GNU General Public License).

    Onde encontrar:

    http://www.gnu.org/software/octave/

    http://octave.sourceforge.net/

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    8

    Caractersticas bsicas:

    - Domnio pblico;

    - Possuem vrios comandos semelhantes ao MATLAB;

    - So disponveis verses em diferentes plataformas: Linux, Unix, Windows,

    Mac, etc.

    ltima verso (estvel): 08/Fevereiro/2011 (3.4.0)

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    9

    1.2. Comandos bsicos do sistema

    Ao ativar o OCTAVE a seguinte tela mostrada:

    Janela aberta ao ativar o OCTAVE.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    10

    Alguns comandos do OCTAVE so bsicos e semelhantes a outros usados em sistemas

    operacionais como DOS, Unix, Linux, dentre outros. A tabela seguinte mostra alguns

    destes comandos, que podem se acionados a partir dopromptdo OCTAVE.

    cd Troca o diretrio de trabalho atualdir Lista o contedo do diretrio atualpwd Mostra opathdo diretrio atual de trabalhodelete Exclui arquivo

    Exemplo de uso: deletearquivo.exttype Mostra o contedo de arquivos texto

    Exemplo de uso: typearquivo.ext

    what Lista arquivos especficos do OCTAVE no diretrio correntehelp Ajuda do OCTAVE

    Exemplo de uso: helpcomandoquit ouexit Fechar o aplicativo e sair do sistema

    Alm destes comandos vrios outros podem ser usados, como por exemplo: mkdir,

    rmdir, etc.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    11

    1.3. Pacotes adicionais do OCTAVE

    O OCTAVE um aplicativo que continua em desenvolvimento e aps a instalao do

    aplicativo, outros pacotes adicionais podem ser instalados. Dentre eles tem-se o pacote

    image, armazenado no arquivo image-1.0.14.tar.gz.

    Antes de instalar qualquer pacote adicional, pode-se ativar o comando pkg list para

    ver todos os pacotes adicionais instalados.

    Para a instalao de um pacote qualquer, de nome package_file_name.tar.gz, basta

    ativar o seguinte comando nopromptdo OCTAVE:

    pkg installpackage_file_name.tar.gz

    Os pacotes disponveis para o OCTAVE esto disponveis na pgina

    http://octave.sourceforge.net/.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    12

    2. INICIANDO O OCTAVE

    2.1. Variveis

    O OCTAVE trabalha essencialmente com um tipo de varivel: matriz, que pode

    conter nmeros, complexos ou no (um escalar uma matriz 1 x 1) e textos. Em alguns

    casos, um tratamento especial dado a uma matriz 1 x 1(escalar) ou a matrizes 1 x nou n

    x 1(vetores).

    2.1.1. Entrando com valores

    No OCTAVE no necessrio que sejam declaradas as variveis e os respectivos

    tipos (inteiro, char, double, etc,) para inici-las, como feito em outras linguagens de

    programao (C/C++, dentre outras) . Ao atribuir valores numricos (ou alfanumricos) a

    uma varivel, o programa aloca a memria automaticamente.

  • 7/23/2019 2011 Octave Galo Camargo

    4/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    13

    A maneira mais fcil de entrar com uma pequena quantidade de valores digitando

    diretamente os dados:

    - envolva os elementos com colchetes, [ ]; (Para matrizes e vetor)

    - separe cada elemento com espaos ou vrgulas;

    - use ponto-e-vrgula (;) para indicar fim da linha.

    Por exemplo, para entrar com a matriz abaixo na memria do computador, e guard-la

    na varivel A:

    =

    987

    654

    321

    A

    Basta digitar:

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

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    14

    ou

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

    Resultado: A =

    1 2 3

    4 5 6

    7 8 9

    OBS: Para que o computador realize a operao e no mostre a sada, basta terminar a

    expresso com ponto-e-vrgula (;). Isto muito til para evitar que o computador mostre

    resultados de clculos intermedirios desnecessrios, e para acelerar as operaes.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    15

    2.1.2. Variveis reservadas

    Existem algumas variveis que so intrnsecas ao OCTAVE, como por exemplo:

    help Ajuda do OCTAVE

    ans Nome de varivel padro usado para resultados

    eps Preciso do nmero real (ponto flutuante)

    nan Not a Number(indeterminao: 0/0)

    realmax Maior nmero real positivo utilizvel

    realmin Menor real positivo utilizvelinf Infinito: 1/0

    computer Tipo de computador

    pi 3,14159265358979

    i, j Unidade imaginria (i2=-1)

    version Verso do OCTAVE

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    16

    2.2. Expresses e comandos bsicos

    O OCTAVE, assim como o MATLAB, so linguagens de alto nvel e interpretadas.

    Nestas linguagens o sistema avalia as expresses digitadas, que so geralmente na forma:

    varivel = expresso

    Os nmeros reais so escritos em notao decimal e para criar nmeros complexos

    basta escrever i (ouj) depois da parte imaginria. Alguns exemplos de nmeros permitidos

    so mostrados abaixo:

    1/3 -99 .0001

    9.63973 1.602E-20 6.025E23

    3 + 2i -3.1459i 3E5j

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    17

    Todo clculo realizado com todas as casas decimais ( eps), embora os nmeros

    mostrados ocultem algumas dessas casas. Para mudar o formato de sada dos nmeros,

    pode-se usar o comando format.

    O formato default, chamado de formato short, mostra aproximadamente 5 dgitos

    significativos ou usam notao cientfica. Exemplo:

    >> x = [4/3 1.2345e-6]

    mostrada, para cada formato usado, da seguinte maneira:

    format short 1.3333e+000 1.2345e-006

    format long 1.333333333333333e+000 1.234500000000000e-006

    format hex 3ff5555555555555 3eb4b6231abfd271

    format rat 4/3 9/7290401 (Aproximao racional)

    format bank 1.33 0.00

    format + ++

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    18

    O formato + uma maneira compacta de mostrar matrizes de grandes dimenses. Os

    smbolos "+", "-", e "espao em branco" so mostrados, respectivamente para elementos

    positivos, elementos negativos e zeros.

    Podem-se construir expresses com os operadores aritmticos usuais:

    + adio / e \ Diviso

    - subtrao ^ Potenciao

    * multiplicao matriz transposta

    O OCTAVE possui um conjunto de funes matemticas elementares, com seno

    (sin), tangente (tan), logaritmo (log10), etc. Por exemplo, para calcular o seno de 30 e

    guardar na varivel x pode-se escrever:

    x=sin(30)

    x=-0.98803 (para format short)

  • 7/23/2019 2011 Octave Galo Camargo

    5/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    19

    Funes Elementares (colocadas em ordem alfabtica)

    abs(x) Valor absoluto ou mdulo de um nmero

    acos(x) Arco co-seno

    angle(x) Calcula o ngulo de fase (em radianos) para nmeros complexos

    asin(x) Arco seno

    atan(x) Arco tangente

    cos(x) Cosseno

    cross(a,b) Produto vetorial dos vetores a e b

    exp(x) Exponencial (ex)

    inv(x) Matriz inversa da matriz x

    log(x) Logaritmo natural (loge x)

    log10(x) Logaritmo na base 10

    max(x) Maior elemento em x

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    20

    Funes Elementares (continuao)

    mean(x) Mdia de x

    min(x) Menor elemento em x

    sin(x) Seno

    sqrt(x) Raiz quadrada

    std(x) Desvio padro

    sum(x) Soma dos elementos de x

    tan(x) Tangente

    Algumas dessas operaes podem ser aplicadas a vetores ou matrizes. Para a funo

    std(x), por exemplo, se o argumento xfor um vetor o resultado ser o desvio padro desse

    vetor. Se xfor uma matriz, ser calculado o desvio padropara cada colunadessa matriz.

    O mesmo ocorre com as funes sum, maxe mean, entre outras.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    21

    Usando os comandos vistos, determinar a mdia, desvio padro, a soma dos

    elementos, o valor mximo e mnimo do vetor V abaixo:

    V=[1 2 3 4 5 6 7 8 9]

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    22

    2.2.1. Comandos

    Ao sair do OCTAVE (atravs do comando quit ou exit) todas as variveis do

    workspace so perdidas, a menos que sejam salvas usando o comando save.

    Como usar o comando save, bem como outros relacionados:

    save nome_de_arquivo nome_da(s)_varivel(is)

    Salva somente as variveis especificadas.

    load nome_de_arquivo

    Carrega as informaes salvas.

    clear nome_da_varivel

    Apaga a varivel do workspace. Digitar somente clear

    Tambm apaga todas as variveis do workspace!

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    23

    Um dos comandos mais teis no OCTAVE, bem com em diversos aplicativos, o

    help, que fornece ajuda on-line sobre qualquer outro comando. Por exemplo, para obter

    ajuda sobre o comando who:

    help who

    WHO Lista as variveis no workspaceatual.

    WHOS Lista as variveis e informaes adicionais sobre elas.

    Outro comando til: lookfor. Este comando procura e lista todas as funes do

    OCTAVE que contm a palavra-chave especificada.

    lookfor mean

    Resultado: mean, meansqe mean2.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    24

    2.2.2. Exerccios

    1) Armazene no workspace os seguintes valores:

    a = 3;

    b = -2.123;

    c = 4*3;

    d = [1 2 3 4];

    e = [1; 2; 3; 4];

    Utilize os comandos whoe whose observe as disferenas.

    Ative o comando clear, e digite novamente o comando whos.

  • 7/23/2019 2011 Octave Galo Camargo

    6/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    25

    2) Armazene no workspace os seguintes valores:

    a = 3.452;

    b = -25.123;

    c = 4*pi;

    3) Verifique o resultado das seguintes das seguintes operaes:

    a) (a + b) c c) tan(c) asin(b)

    b) (c b) a / b d) sin(cos(tan(c)))

    Efetuar os clculos (formato padro), depois mudar para o formato long

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    26

    Comandos: save, quit(ou exit), load, clear, whos.

    4) Atribua as seguintes expresses s variveis:

    a) 4.12 a pi/c para x

    b) log(a + 40.1353) para y

    c) log(a) para z

    5) Salve as variveis x, y, z em um arquivo chamado exemplo.mat.

    6) Saia do OCTAVE, entre novamente e carregue as variveis salvas anteriormente.

    7) Apague a varivel z e verifique se ela foi realmente apagada.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    27

    3. OPERAES COM MATRIZES E VETORES

    O OCTAVE permite a manipulao de linhas, colunas, elementos individuais e partes

    de matrizes.

    3.1. Gerao de vetores

    A gerao de uma seqncia de nmeros pode ser feita utilizando:

    > x = 1:5 ou > x = 1:1:5

    gera um vetor linha contendo os nmeros de 1 a 5 com incremento unitrio.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    28

    Outros exemplos com incrementos diferentes de um:

    > y = 0:pi/4:pi

    que resulta em:

    y =

    0.0000 0.7854 1.5708 2.3562 3.1416

    Incrementos negativos tambm so possveis.

    > z = 6 : -l : l

    z =

    6 5 4 3 2 1

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    29

    Pode-se, tambm, gerar vetores usando a funo linspace. Por exemplo,

    > k = linspace (0, l, 6)

    k =

    0 0.2000 0.4000 0.6000 0.8000 1.0000

    gera um vetor com 6 elementos onde o primeiro elemento 0 e o ltimo 1.

    3.2. Elementos das matrizes

    Um elemento especfico da matriz pode ser acessado especificando a linha e a coluna

    do elemento desejado, fazendo A(linha, coluna). Por exemplo, dada a matriz A:

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    30

    A =

    l 2 3

    4 5 6

    7 8 9

    a declarao

    >> A(3,3) = A(1,3) + A(3,l)

    Resulta em:

    A =

    l 2 3

    4 5 6

    7 8 10

  • 7/23/2019 2011 Octave Galo Camargo

    7/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    31

    Extrao de submatrizes de uma dada matriz

    A =

    92 99 11 18

    98 80 17 14

    14 81 88 20

    >> B = A(2:3,4) Armazena em B os elementos das linhas 2 e 3 da coluna 4.

    B =

    14

    20

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    32

    >> C = A(2:3,2:4)

    C =

    80 17 14

    81 88 20

    C uma submatriz 2x4, formada pelas linhas 2 e 3 e colunas 2 a 4 da matriz A.

    >> D = triu(A) > B = ones (10)

    Exemplo 2: C uma matriz de dimenso 8x8 com elementos nulos.

    >> C = zeros (8)

    Matriz identidade: eye

    Matriz diagonal: diag

  • 7/23/2019 2011 Octave Galo Camargo

    8/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    37

    3.4. Exerccios

    1) Dadas as seguintes matrizes e vetores: A = [1 2 3; 4 10 6; 7 8 19];

    B = [4 5 6; 1 2 3; 8 7 6];

    C = [4 5 6];

    L = [4; 5; 6];

    2) Calcule:

    a)D = A+B g) Determinar a inversa de A e salvar em D

    b)E = A*B h) Produto D vezes A

    c)F = A-B i) Autovalor e Autovetor de A

    d)G = BT-A j) Calcule o trao e o determinante de A

    e)H = ATA k) Resolver o sistema AX = L

    f)I = A CT

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    38

    4. GRFICOS

    A construo de grficos no OCTAVE bem simples e a maior parte dos comandos

    muito parecida com os usados pelo MATLAB, sendo possvel a gerao de grficos

    bidimensionais ou tridimensionais.

    Existe no OCTAVE uma vasta biblioteca de comandos grficos.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    39

    4.1. Comandos grficos bsicos

    Na tabela seguinte so mostrados alguns comandos bsicos que permitem a gerao

    de grficos bidimensionais no OCTAVE.

    plot Visualizao de grficos lineares no plano.

    bar Grfico de barras.

    stem Sequncia discreta.

    stairs Plotar em degraus.

    errorbar Plotar barra de erros.

    hist Plotar histograma.

    comet Plotar com trajetria de cometa.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    40

    Se y um vetor,plot(y)produz um grfico linear dos elementos de yversos o ndice

    dos elementos de y. Por exemplo, para plotar os nmeros [0.0, 0.48, 0.84, 1.0, 0.91, 0.6,

    0.14], entre com o vetor ye execute o comandoplot, como mostrado:

    >> y = [0.0 0.48 0.84 1.0 0.91 0.6 0.14];

    >> plot(y)

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    41

    Resultado

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    42

    Se t e yso vetores com dimenses iguais, o comando plot(t,y)produz um grfico

    bidimensional dos elementos de tversos os elementos de y, por exemplo

    >> t = 0:0.05:4*pi;

    >> y = sin(t);

    >> plot(t,y)

  • 7/23/2019 2011 Octave Galo Camargo

    9/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    43

    Resultado

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    44

    O OCTAVE pode tambm plotar mltiplas linhas em apenas um grfico.

    Comandoplotcom mltiplos argumentos.

    Por exemplo:

    >> plot(t,sin(t),t,cos(t),t,0.4*sin(t+pi),t,0.6*cos(t+pi))

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    45

    Resultado

    0 2 4 6 8 10 12 14-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    46

    4.2. Estilos de Linha e Smbolo

    Os tipos de linhas, smbolos e cores usadas para mostrar os grficos podem ser

    controlados. Seguem alguns exemplos:

    >> x = 0:0.05:1;

    >> subplot(1,2,1);

    >> plot(x,x.^2,k*)

    >> subplot(1,2,2);>> plot(x,log(x+0.1),y-)

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    47

    Resultado

    0 0.5 10

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.7

    0.8

    0.9

    1

    0 0.5 1-2.5

    -2

    -1.5

    -1

    -0.5

    0

    0.5

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    48

    Outros tipos de linhas, pontos e cores tambm podem ser usados:

    TIPO DE LINHA

    - __________

    TIPO DE PONTO

    + +++++++++

    x x x x x x x x

    ^ ^ ^ ^ ^ ^ ^ ^

    CORES

    y amarelo

    m magenta

    c cian

    r vermelho

    g verde

    b azul

    w branco

    k preto

  • 7/23/2019 2011 Octave Galo Camargo

    10/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    49

    4.3. Exerccios

    >> t = 0:0.5:4*pi;

    >> y = sin(t);

    Criar os seguintes grficos:

    Grfico de barras (bar)

    Seqncia discreta (stem)

    Escada (stairs)

    Dado o vetor: y= [ 1 2 3 7 3 8 8 4 10 1 3 7 8 9 9] construa o histograma (hist) e o grfico

    de barras.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    50

    Verificar o resultado do uso dos seguintes comandos:

    >> t=1:pi/10:6*pi;

    >> y=(1-t).*sin(t);

    >> comet(y)

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    51

    4.4. Gerao de Grficos Tridimensionais e Isolinhas

    Estes so alguns comandos para gerar grficos tridimensionais e contornos.

    plot3 Mostrar grfico no espao 3D.

    contour Permite visualizar curvas de nvel no plano.

    contour3 Permite visualizar curvas de nvel no espao 3D.

    meshgrid Permite a criao de estruturas (2D e 3D) para representao 3D.

    mesh Permite plotar malhas 3D.

    meshc Combinao mesh/contour.

    surf Plotar superfcie 3D.

    surfc Combinao surf/contour.

    slice Plot visualizao volumtrica.

    cylinder Gerar cilindro.

    sphere Gerar esfera.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    52

    O comando mesh(x,y,z)cria uma perspectiva tridimensional plotando os elementos da

    matriz zem relao ao plano definindo pelas matrizes xey. Exemplo de uso:

    >> t = -2:0.2:2;

    >> [x, y] = meshgrid(t, t);

    >> z = x.* exp(-x.^2 - y.^2);

    >> mesh(x,y,z)

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    53

    Verifique as seguintes opes:

    >> surf(x, y, z)

    >> colormap(gray);

    Alguns outros paletes: hot,bone,pink,jet, spring, rainbow, cool, copper,

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    54

    Outros exemplos de superfcies (ainda usando a mesma funo) no qual se considera que a

    superfcie iluminada por uma fonte de luz, dando o efeito de "sombreamento".

    >> colormap(bone)

    >> surfl(x, y, z)

    >> colormap(bone)

    >> surfl(x, y, z), shading flat

    >> colormap(bone)

    >> surfl(x, y, z), shading interp

  • 7/23/2019 2011 Octave Galo Camargo

    11/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    55

    Curvas de nvel

    O comando contour(z,10)mostra a projeo da superfcie acima no plano xycom 10

    iso-linhas.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    56

    4.5. Anotaes no Grfico

    O OCTAVE possui comandos de fcil utilizao para adicionar informaes em um

    grfico:

    title Ttulo do grfico.

    xlabel Ttulo do eixo X.

    ylabel Ttulo do eixo Y.

    zlabel Ttulo do eixo Z.

    text Inserir anotao no grfico.

    gtext Inserir anotao com o mouse, de modo interativo.

    grid Linhas de grade.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    57

    Exemplos:

    >> fplot(sin, [-pi pi]);

    >> title Grfico da funo f(x)=seno(x), -pi xlabel x;

    >> ylabel f(x);

    >> grid (on);

    >> text(1,.2,Curva sin(x));

    >> gtext Sin(x);

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    58

    Exemplo do comando fplotpara mltiplas funes

    fplot('[tan(x),sin(x),cos(x)]',2*pi*[-1 1 -1 1])

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    59

    Uma outra possibilidade para a visualizao de mltiplas funes:

    >> figure(2)>> t=linspace(-2*pi,2*pi,50);

    >> y1=tan(t);

    >> y2=sin(t);

    >> y3=cos(t);

    >>

    >> plot(t,y1,"r");

    >> hold on

    >> plot(t,y2,"g");

    >> plot(t,y3,"b");

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    60

    5. ARQUIVOS SCRIPT(.m)

    Os comandos do OCTAVE so normalmente digitados na rea de trabalho, onde cadalinha de comando introduzida e imediatamente processada. O OCTAVE tambm capaz

    de executar sequncias de comandos armazenadas em arquivos ASCII com extenso m.

    Para editar um arquivo texto na rea de trabalho do OCTAVE, no promptdigite edit

    seguido nome do arquivo com extenso m (nome.m). Ao realizar esta operao o

    aplicativo Notepad++ ativado. Os arquivos podem tambm ser editados fora do

    OCTAVE, utizando qualquer editor de texto (notepad, textpad, wordpad, edit, etc.).

    Existem alguns comandos e declaraes especiais para serem usados nos arquivos,

    por exemplo:

  • 7/23/2019 2011 Octave Galo Camargo

    12/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    61

    Comando Funo% ou # Inserir um comentrio no arquivo .m.clear Apagar todos os dados da memria.input Usado para a entrada de dado a partir da janela

    de comando.pause Provoca uma pausa na execuo do arquivo at

    que qualquer tecla seja digitada.clc Limpar a janela de comando.figure(n) Mostrar a janela grfica nmero n.close Fechar todas as janelas grficas.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    62

    Exemplo de arquivo script

    #Plota uma funo y=ax^2 + bx + c no intervalo -5> for i = 1:n;>> for j = 1:n;>> ...>> endfor>> endfor

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    64

    comum construes em que conjuntos de laos forso usados principalmente com

    matrizes:

    for i=1:8;

    for j=1:8;

    A(i,j)=i+j;

    B(i,j)=i-j;

    endfor

    endfor

    A

    B

    C=A+B

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    65

    6.2. Comando while

    No exemplo abaixo o lao while executado se a condio testada for verdadeira.

    a = 1; b = 15;

    while a

  • 7/23/2019 2011 Octave Galo Camargo

    13/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    67

    6.3. Declaraes if, else

    A seguir, apresentado um exemplo do uso da declarao ifno OCTAVE.

    for i = 1:5;

    for j = 1:5;

    if i == j

    A(i,j) = 2;

    else

    if abs(i-j) == 1

    A(i,j) = -1;

    else

    A(i,j) = 0;

    endif

    endif

    endfor

    endfor

    A

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    68

    7. ABERTURA E VISUALIZAO DE IMAGENS

    So vrios os comandos destinados visualizao e processamento de imagens. Boa

    parte destes comandos incorporada em bibliotecas (ou pacotes) especficas como a

    denominada image, disponvel na pgina http://octave.sourceforge.net/.

    O propsito central desta seo apresentar apenas alguns comandos bsicos, em

    funo das diversas possibilidades de processamento. Dada a diversidade de comandos

    um, ou mais cursos poderiam ser ministrados com este propsito.

    Pode-se notar que boa parte dos comando so similares ao da biblioteca MATLAB.

    Para detalhes adicionais sobres os diversos comando sugere-se EATON et al (2007) e

    McANDREW (2004).

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    69

    A tabela seguinte mostra alguns comandos bsicos, que permitem a operao com

    imagens no OCTAVE:

    imread Faz a leitura de imagens.

    image Permite a visualizao de uma matriz como uma imagem.

    hist Calcula o histograma de um conjunto de dados.

    rgb2gray Converte imagem colorida (RGB) para tons de cinza.

    axis Controla a aparncia e a escala dos eixos.

    disp Visualizao de um vetor no modo texto.

    figure Abre uma nova janela grfica.colormap Permite definir um mapa de cores.

    Exemplo: colormap(gray(256))

    imfinfo Funo que retorna uma estrutura que contem diversas

    informaes sobre determinada imagem.

    Exemplo de uso: imfinfo(arquivo_imagem)

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    70

    Abertura de imagem / Visualizao / Converso RBG para Tom de Cinza

    Crie um arquivo (.m), digite, salve e execute os comandos abaixo:

    nome='lenna.jpg';

    DATA=imread(nome);

    figure(1);

    image(DATA);

    xlabel([ 'Imagem: ' nome ]);

    disp([ 'Imagem entrada: ' nome ]);

    figure(2);

    DATAg=rgb2gray(DATA);

    image(DATAg);

    colormap(gray(256));

    xlabel([ 'Imagem (tom de cinza) ' ]);

    disp([ 'Imagem (tom de cinza) : ok' ]);

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    71

    Abertura de imagem / Visualizao / Converso RBG para Tom de Cinza(Cont.)

    No mesmo arquivo criado antes, escreve um cdigo que permita criar a imagem

    negativa em tom de cinza. Mostre esta imagem:

    ...

    figure(3);

    DATAn=255.-DATAg;

    image(DATAn);

    colormap(gray(256));

    xlabel([ 'Imagem (negativa)' ]);

    disp([ 'Imagem (negativa) : ok' ]);

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    72

    Resultado do processamento anterior, onde mostrada a imagem original (colorida), a

    convertida para tons de cinza e a negativa.

    Ima em: lenna.

    50

    100

    150

    200

    250

    300

    350

    40050 100 150 200 250 300 350 400

    Ima em (tom de cinza

    50

    100

    150

    200

    250

    300

    350

    40050 100 150 200 250 300 350 400

    Imagem (negativa)

    50

    100

    150

    200

    250

    300

    350

    40050 100 150 200 250 300 350 400

  • 7/23/2019 2011 Octave Galo Camargo

    14/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    73

    Leitura / Clculo do Histograma de Frequncia / Visualizao do Histograma

    nome='lenna.jpg';DATA=imread(nome);DATAg=rgb2gray(DATA);

    figure(1);image(DATAg);colormap(gray(256));xlabel([ 'Imagem: ' nome ]);disp([ 'Imagem (original): ' nome ]);

    [freq,tom]=hist(DATAg(:),0:255);figure(2);plot(tom,freq);title([ 'Histograma' ]);

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    74

    Resultado do processamento anterior, onde mostrada a imagem lida e respectivo

    histograma.

    50

    100

    150

    200

    250

    300

    350

    40050 100 150 200 250 300 350 400

    0

    500

    1000

    1500

    2000

    2500

    3000

    3500

    0 50 100 150 200 250 300

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    75

    Alguns comandos adicionais relacionado ao processamento de imagens:

    imshow Permite a visualizao de uma imagem.

    imagesc Permite a visualizao de uma imagem aps a aplicao de uma escala,

    de modo que todo o mapa de cores seja utilizado.

    imwrite Permite salvar uma imagem em arquivo (imwrite(imagem, nome.ext))

    Formatos aceitos: jpg, tif, gif, pgm, bmp, png, etc.

    filter2(B,X) Realiza a correlao do dado em X usando o filtro 2D armazenado em

    B.

    conv2 (A,B) Realiza a convoluo da matriz A sobre a matriz B

    uint8 Converte os elementos para inteiros sem sinal (8 bits).

    int8 Converte os elementos para inteiros de 8 bits.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    76

    Leitura / Aplicao de um filtro a uma imagem / Visualizao

    nome='lenna.jpg';DATA=imread(nome);DATA=rgb2gray(DATA);

    figure(1);image(DATA);colormap(gray(256));title([ 'Imagem: ' nome ]);

    f33=[ 1 1 1;1 1 1;

    1 1 1 ];PARCIALa=filter2((1/9)*f33,DATA,'same');figure(2);image(PARCIALa);colormap(gray(256))title([ 'Imagem: ' nome ' [Aps fitro mdia 3x3]' ]);

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    77

    Leitura / Aplicao de um filtro a uma imagem / Visualizao(Continuao)

    ...

    f55=[ 1 1 1 1 1; 1 1 1 1 1;1 1 1 1 1; 1 1 1 1 1;1 1 1 1 1 ];

    PARCIALb=conv2(DATA,(1/25)*f55,'same');figure(3);imagesc(PARCIALb);colormap(gray(256));title([ 'Imagem: ' nome ' [Aps fitro mdia 5x5]' ]);

    f2da=[ -1 0 1; -2 0 2; -1 0 1 ];PARCIAL=filter2(f2da,DATA);figure(4);imshow(uint8(PARCIAL));title([ 'Imagem: ' nome ' [Aps filtro Sobel (bordavertical]' ]);

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    78

    Imagem: lenna.jpg

    50

    100

    150

    200

    250

    300

    350

    4005 0 1 00 1 50 2 0 0 2 5 0 3 0 0 3 5 0 4 0 0

    Imagem: lenna.jpg [Aps fitro mdia 3x3]

    50

    100

    150

    200

    250

    300

    350

    4005 0 1 00 1 50 2 00 2 50 3 00 3 50 4 00

    Imagem: lenna.jpg [Aps fitro mdia 5x5]

    50

    100

    150

    200

    250

    300

    350

    4005 0 1 00 1 50 2 00 2 50 3 00 3 50 4 00

    Imagem: lenna.jpg [Aps filtro Sobel (borda vertical]

  • 7/23/2019 2011 Octave Galo Camargo

    15/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    79

    Abertura de imagem / Armazenamento em outros formatos

    No mesmo arquivo script anteriormente escrito, incorpore no cdigo o

    armazenamento das imagens aps o filtro de suavizao 3x3 e 5x5, em arquivos com

    diferentes formatos:

    ...

    imwrite(uint8(PARCIALa),"filtro3x3.jpg");

    imwrite(uint8(PARCIALb),"filtro5x5.png");

    disp(['Imagens filtro3x3.jpg e filtro5x5.png salvas.']);

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    80

    Abertura de imagem / Armazenamento em outros formatos

    No mesmo arquivo script anteriormente escrito, incorpore no cdigo o

    armazenamento das imagens aps o filtro de suavizao 3x3 e 5x5, em arquivos com

    diferentes formatos:

    ...

    imwrite(uint8(PARCIALa),"filtro3x3.jpg");

    imwrite(uint8(PARCIALb),"filtro5x5.png");

    disp(['Imagens filtro3x3.jpg e filtro5x5.png salvas.']);

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    81

    8. IMPORTAO / EXPORTAO DE DADOS E CRIAO DE FUNES

    Neste tpico so apresentados alguns comandos adicionais relacionados

    manipulao de arquivos e ao uso de funes criadas pelo usurio.

    8.1. Importao e Exportao de Dados

    Os dados contidos na rea de trabalho do OCTAVE, como foi visto, podem ser

    armazenados em arquivos no modo texto, binrio (e outros formatos), utilizando o

    comando save. Existem diversas maneiras de utilizar este comando, como pode-se ver nos

    exemplos mostrados na sequncia:

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    82

    save arql.sai X Y Z binary salva as variveis X, Y e Z no arquivo binrio

    arq1.sai.

    save arq2.sai X Y Z -ascii salva as variveis X., Y e Z no arquivo texto

    arq2.sai com 8 casas decimais.

    save arq3.sai X Y Z -ascii -double salva as matrizes X., Y e Z no arquivo texto

    arq3.sai com 16 casas decimais.

    Os dados obtidos por outros programas podem ser importados pelo OCTAVE, desde

    que estes dados sejam gravados em formato apropriado. Se os dados so armazenados noformato ASCII, e no caso de matrizes, com colunas separadas por espaos e cada linha da

    matriz em uma linha do texto, o comando loadpode ser usado.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    83

    Por exemplo suponha que um programa qualquer criou arquivo polig1.dat que

    contm a seguinte matriz.

    1 1

    3 1

    3 3

    1 3

    1 1

    Ao executar o comando:

    >> load polig1.dat

    o OCTAVE importa a matriz, que armazenada com o nomepolig1.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    84

    polig1polig1 =

    1 1

    3 1

    3 3

    1 3

    1 1

  • 7/23/2019 2011 Octave Galo Camargo

    16/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    85

    O OCTAVE pode tambm importar (atravs do comando load) os dados que foram

    anteriormente exportados por ele. Por exemplo, para importar as variveis X, Y e Z,

    anteriormente exportadas usando o comando save, pode-se fazer:

    load arq1 save arq1 X Y Z

    load arq2.sai save arq2.sai X Y Z -ascii

    load arq3.sai save arq3.sai X Y Z -ascii -double

    Deve-se ressaltar que o comando save, quando usado para exportar os dados do

    OCTAVE em formato texto, exporta apenas um bloco contendo todas as variveis.

    Quando os dados so importados atravs do comando load, apenas uma varivel com

    nome do arquivo criada.

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    86

    Exemplo:

    >> x = rand(3,3)

    x =

    0.2190 0.6793 0.5194

    0.0470 0.9347 0.8310

    0.6789 0.3835 0.0346

    >> y = rand(3,3)

    y =0.0535 0.0077 0.4175

    0.5297 0.3835 0.6868

    0.6711 0.0668 0.5890

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    87

    >> save arq2.sai X Y -ascii

    >> clear

    >> whos

    >> load arq2.sai

    >> arq2

    arq2 =

    0.2190 0.6793 0.5194

    0.0470 0.9347 0.83100.6789 0.3835 0.03460.0535 0.0077 0.41750.5297 0.3834 0.68680.6711 0.0668 0.5890

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    88

    8.2. Criao de funes

    O uso de funes muito til tanto na execuo de algumas tarefas repetitivas

    quanto no aproveitamento do cdigo em diferentes aplicaes. Pode-se, deste modofazer a

    criao bibliotecas de funes destinadas a soluo de alguns problemas especficos.

    A esctrutura geral de uma funo criada pelo usurios do OCTAVE a seguinte:

    function [ retorno ] = teste (variveis)...

    endfunction

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    89

    Na sequncia so mostrados dois exemplos de funes. Uma delas foi criada com o

    objetivo de, dado um ngulo (alfa) em radianos, montar a matriz de rotao M:

    =

    )cos()sin(

    )sin()cos()(M

    .

    A segunda funo tem o propsito de, dada uma matriz de rotao M e um ponto de

    coordenas (x,y), aplicar a matriz de rotao de modo que se tenha:

    =

    y

    x)(M

    'y

    'x

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    90

    Funo f_matriz_rotacao armazenada no arquivo f_matriz_rotacao.m

    function Mrot=f_matriz_rotacao(alfa)

    # F_MATRIZ_ROTACAO Calcula a matriz de rotao no plano# Entrada: ngulo em graus# Retorno: Matriz de rotao 2x2## Autores: Mauricio Galo e Paulo Camargo# UNESP, 2011

    alfa=alfa*pi/180;Mrot=[ cos(alfa) sin(alfa);

    -sin(alfa) cos(alfa)];

    Endfunction

  • 7/23/2019 2011 Octave Galo Camargo

    17/17

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    91

    Funo f_aplica_rotacao armazenada no arquivo f_aplica_rotacao.m

    function [xrot,yrot]=f_aplica_rotacao(M,x,y)

    # F_APLICA_ROTACAO Faz a rotao de um ponto (x,y) usando# a matriz de rotao M# Retorno: Coordenadas rotacionadas do# ponto (x,y)## Autores: Mauricio Galo e Paulo Camargo# UNESP, 2011

    xrot=x*M(1,1) + y*M(1,2);yrot=x*M(2,1) + y*M(2,2);

    endfunction

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    92

    Como exemplo de aplicao das funes criadas para o OCTAVE, inicialmente

    escreva umscriptque permite ler nas variveispolig1.datepolig2.dat, bem como permita

    a visualizao destes vetores, usando o comandoplot:

    Contedo do

    arquivo

    polig1.dat

    Contedo do

    arquivo

    polig2.dat0 01 01 10 10 0

    2 2

    3 3

    2 3

    2 2

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    93

    Leitura dos dados / Visualizao dos polgonos

    load 'polig1.dat'load 'polig2.dat'

    [lin1,col1]=size(polig1);[lin2,col2]=size(polig2);

    x1=polig1(1:lin1,1);y1=polig1(1:lin1,2);x2=polig2(1:lin2,1);y2=polig2(1:lin2,2);

    figure(1);plot(x1,y1,x2,y2);

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    94

    Clculo da Matriz de Rotao / Rotao / Visualizao dos polgonos aps rotao

    No mesmo scriptanterior, calcule e matriz de rotao, aplique-a a todos os pontos

    dos dois polgonos e faa a visualizao.

    ...ROT = f_matriz_rotacao(30);

    [x1r,y1r]=f_aplica_rotacao(ROT,x1,y1);[x2r,y2r]=f_aplica_rotacao(ROT,x2,y2);

    figure(2);plot(x1r,y1r,x2r,y2r);

    figure(3);plot(x1,y1,x2,y2,x1r,y1r,x2r,y2r);

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    95

    Visualizao dos polgonos antes e aps rotao

    -0.5

    0

    0.5

    1

    1.5

    2

    2.5

    3

    0 1 2 3 4 5

    Minicurso - Introduo ao Octave UNESP / Departamento de Cartografia

    96

    REFERNCIAS

    CORAL, A. M.; SANTOS, M. P.; BASTOS, T. D. A.; BORBA, M. Curso de Matlab.Universidade Federal de Santa Catarina, Dep. de Eng. de Produo, Programa Especial de

    Treinamento PET. Florianpolis SC, 1999. 29p.

    EATON, J. W.; BATEMAN, D.; HAUBERG, S. GNU Octave Edition 3 for Octave version3.2.3, July, 2007. 672p.

    HANSELMAN, D.; LITTLEFIELD, B. Matlab - Verso do Estudante: guia do usurio(Traduo). So Paulo: Makron Books, 1997. 305p.

    McANDREW, A. Introduction to Digital Image Processing with MATLAB. Thomson CourseTechnology, 2004. 509p. ISBN: 0-534-40011-6

    PAGAMISSE, A.; SOUZA, L. H. G. Introduo ao Software Octave. Semana de Cursos deMatemtica, Estatstica e Computao, 25-29 de agosto de 2003, FCT/UNESP, Presidente Prudente,

    2003. 54p.

    SIGMON, K. Matlab Primer Third Edition. Department of Mathematics, University of Florida,Gainesville, 1993. 35p. http://ise0.stanford.edu/Acessado em 05/maio/2003.

    ZERI, L. M. M.. Apostila de Matlab. Instituto Nacional de Pesquisas Espaciais INPE, 2001. 19p.