You are on page 1of 24

Universidade Estadual Paulista

FCT Campus de Presidente Prudente

Tutorial do OCTAVE /
OCTAVE Tutorial

Autores:
MMaauurriicciio
oGGa
allo o
PPa
auullo
od deeOOlliiv
veeiirra
aCCa
amma
arrg
goo

Departamento de Cartografia / FCT UNESP


Presidente Prudente, 2016
Universidade Estadual Paulista TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia
FCT Campus de Presidente Prudente

Tutorial do OCTAVE / OCTAVE Tutorial Tutorial do OCTAVE / OCTAVE Tutorial

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
Autores: 9. CRIAO E USO DE FUNES
MMaauurriicciio
oGGa
allo o
2
2001
166 PPa
auullo
od deeOOlliiv
veeiirra
aCCa
amma
arrg
goo
REFERNCIAS
Departamento de Cartografia / FCT - UNESP

1 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 2

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

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

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.
1.1. O que OCTAVE
29p.
EATON, J. W.; BATEMAN, D.; HAUBERG, S. GNU Octave Edition 3 for Octave version 3.2.3, July, 2007.
672p.
EATON, J. W.; BATEMAN, D.; HAUBERG, S.; WEHBRING, R. GNU Octave Edition 4 for Octave version
O OCTAVE um aplicativo que foi originalmente desenvolvido com o propsito
4.0.0 Free Your Numbers, March, 2015. 966p.
HANSELMAN, D.; LITTLEFIELD, B. Matlab - Verso do Estudante: guia do usurio (Traduo). So didtico, mais especificamente para o projeto de reatores qumicos e surgiu a partir da
Paulo: Makron Books, 1997. 305p.
inteno de criar um aplicativo no qual a programao fosse mais rpida do que nas
McANDREW, A. Introduction to Digital Image Processing with MATLAB. Thomson Course Technology,
2004. 509p. ISBN: 0-534-40011-6 demais linguagens.
PAGAMISSE, A.; SOUZA, L. H. G. Introduo ao Software Octave. Semana de Cursos de Matemtica,
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, Deste modo, os alunos poderiam dedicar mais tempo na anlise e soluo dos
1993. 35p. Disponvel em http://skomam.vsb.cz/program/primer.pdf. Acesso em 13/Junho/2015.
problemas de qumica, do que especificamente na implementao.
ZERI, L. M. M. Apostila de Matlab. Instituto Nacional de Pesquisas Espaciais INPE, 2001. 19p.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 3 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 4

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

O seu desenvolvimento comeou por volta de 1988 e um de seus idealizadores foi Caractersticas bsicas:
John W. Eaton, alm de James B. Rawlings da Universidade de Wisconsin-Madison e
John G. Ekerdt da Universidade do Texas. Atualmente o desenvolvimento feito por - Domnio pblico;
vrios profissionais, de diferentes pases, sendo a sua distribuio feita de acordo com a - Possui vrios comandos que so semelhantes ao MATLAB e SciLab;
licena GLP (GNU General Public License). - So disponveis verses para diferentes sistemas operacionais: Linux, Unix,
Windows, Mac, etc.
Onde encontrar:
http://www.gnu.org/software/octave/
ltima verso (estvel):
http://octave.sourceforge.net/
4.0.0 (Lanada em Maio/2015)
ltima atualizao:
4.0.3 (Lanada em Julho/2016)

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 5 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 6
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

1.2. Ambiente de trabalho e comandos bsicos do sistema

Desde o inicio do desenvolvimento do OCTAVE, em 1988, foram lanadas inmeras


verses, para as diferentes plataformas1. Na maior parte das verses a nica possibilidade
de trabalho era via uma interface no grfica. H poucos anos a opo de utilizao de
uma interface grfica foi possvel, tornando mais prtica e amigvel a utilizao do
aplicativo. Na figura abaixo so mostradas duas interfaces (verses 3.2.4 e 4.0.0, resp.).

1
Interface no grfica - OCTAVE verso 3.2.4.
Consulte a pgina ftp://ftp.gnu.org/gnu/octave/ para ver algumas destas verses.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 7 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 8

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Alm dessas verses, que podem ser instaladas e executadas no modo off-line, tambm
possvel executar o OCTAVE de modo online, a partir do endereo mostrado abaixo.

Interface grfica do OCTAVE executado no modo online.


Interface grfica do OCTAVE 4.0.0, lanada em maio de 2015. Fonte: http://www.octave-online.net
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 9 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 10

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

1.3. Pacotes / Bibliotecas adicionais do OCTAVE


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
O OCTAVE um software que continua em constante desenvolvimento e aps a
destes comandos, que podem se acionados a partir do prompt do OCTAVE.
instalao do aplicativo, outros pacotes adicionais podem ser instalados. Para ter uma lista
cd Troca o diretrio de trabalho atual dos pacotes disponveis para o OCTAVE sugere-se a consulta da seguinte pgina
dir Lista o contedo do diretrio atual http://octave.sourceforge.net/.
pwd Mostra o path do diretrio atual de trabalho
delete Exclui arquivo Dentre os pacotes tem-se por exemplo, para a verso 4.0.0 do OCTAVE o pacote
Exemplo de uso: delete arquivo.ext image, armazenado no arquivo image-2.4.0.tar.gz. Pode-se observar que este arquivo,
type Mostra o contedo de arquivos texto
Exemplo de uso: type arquivo.ext bem como todos os demais da verso 4.0.0 esto disponibilizados no seguinte diretrio:
what Lista arquivos especficos do OCTAVE no diretrio corrente C:\Octave\Octave-4.0.0\src
help Ajuda do OCTAVE Antes de instalar qualquer pacote adicional, pode-se ativar o comando pkg list no
Exemplo de uso: help comando
quit ou exit Fechar o aplicativo e sair do sistema prompt do OCTAVE para ver todos os pacotes j instalados.
Alguns outros comandos: mkdir, rmdir, etc.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 11 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 12
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

2. INICIANDO O OCTAVE
Para a instalao de um pacote qualquer, de nome package_file_name.tar.gz, basta
ativar o seguinte comando no prompt do OCTAVE: 2.1. Variveis

pkg install package_file_name.tar.gz 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,
No diretrio mencionado anteriormente (C:\Octave\Octave-4.0.0\src) pode-se notar
um tratamento especial dado a uma matriz 1 x 1 (escalar) ou a matrizes 1 x n ou n x 1
que vrios outros pacotes/bibliotecas esto disponveis. Pode-se notar que neste diretrio
(vetores).
tem-se tambm o arquivo build_packages.m que contm o script que permite a
instalao de vrias outras bibliotecas.
2.1.1. Entrando com valores
Uma vez que para o desenvolvimento deste tutorial so necessrias apenas algumas
delas, sugere-se a instalao apenas dos seguintes pacotes: 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.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 13 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 14

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

A maneira mais fcil de entrar com uma pequena quantidade de valores digitando ou
diretamente os dados: A=[1, 2, 3; 4, 5, 6; 7, 8, 9]
- envolva os elementos com colchetes, [ ]; (Para matrizes e vetor)
- separe cada elemento com espaos ou vrgulas; Resultado: A =
- use ponto-e-vrgula (;) para indicar fim da linha. 1 2 3
4 5 6
Por exemplo, para entrar com a matriz abaixo na memria do computador, e guard-la 7 8 9
na varivel A:

1 2 3
A = 4 5 6
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
7 8 9
resultados de clculos intermedirios desnecessrios, e para acelerar as operaes.
Basta digitar:
A=[1 2 3; 4 5 6; 7 8 9]
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 15 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 16

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

2.2. Expresses e comandos bsicos


2.1.2. Variveis reservadas
O OCTAVE, assim como o MATLAB, so linguagens de alto nvel e interpretadas.
Existem algumas variveis que so intrnsecas ao OCTAVE, como por exemplo:
Nestas linguagens o sistema avalia as expresses digitadas, que so geralmente na forma:

help Ajuda do OCTAVE varivel = expresso


ans Nome de varivel padro usado para resultados
eps Preciso do nmero real (ponto flutuante) Os nmeros reais so escritos em notao decimal e para criar nmeros complexos
nan Not a Number (indeterminao: 0/0) basta escrever i (ou j) depois da parte imaginria. Alguns exemplos de nmeros permitidos
realmax Maior nmero real positivo utilizvel
so mostrados abaixo:
realmin Menor real positivo utilizvel
inf Infinito: 1/0
computer Tipo de computador 1/3 -99 .0001
pi 3,14159265358979
9.63973 1.602E-20 6.025E23
i, j Unidade imaginria (i2=-1)
version Verso do OCTAVE 3 + 2i -3.1459i 3E5j

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 17 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 18
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Todo clculo realizado com todas as casas decimais (eps), embora os nmeros O formato + uma maneira compacta de mostrar matrizes de grandes dimenses. Os
mostrados ocultem algumas dessas casas. Para mudar o formato de sada dos nmeros, smbolos "+", "-", e "espao em branco" so mostrados, respectivamente para elementos
pode-se usar o comando format. positivos, elementos negativos e zeros.
O formato default, chamado de formato short, mostra aproximadamente 5 dgitos
significativos ou usam notao cientfica. Exemplo: Podem-se construir expresses com os operadores aritmticos usuais:
+ adio /e\ Diviso
>> x = [4/3 1.2345e-6]
- subtrao ^ Potenciao
mostrada, para cada formato usado, da seguinte maneira: * multiplicao matriz transposta

format short 1.3333e+000 1.2345e-006


format long 1.333333333333333e+000 1.234500000000000e-006 O OCTAVE possui um conjunto de funes matemticas elementares, com seno (sin),
format hex 3ff5555555555555 3eb4b6231abfd271 tangente (tan), logaritmo (log10), etc. Por exemplo, para calcular o seno de 30 e guardar
format rat 4/3 9/7290401 (Aproximao racional)
na varivel x pode-se escrever:
format bank 1.33 0.00
format + ++ x=sin(30)
x=-0.98803 (para format short)
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 19 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 20

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Funes Elementares (colocadas em ordem alfabtica) Funes Elementares (continuao)


mean(x) Mdia de x
abs(x) Valor absoluto ou mdulo de um nmero min(x) Menor elemento em x
acos(x) Arco co-seno sin(x) Funo seno
angle(x) Calcula o ngulo de fase (em radianos) para nmeros complexos sind(x) Funo seno para ngulo x em graus decimais
asin(x) Arco seno sqrt(x) Raiz quadrada
atan(x) Arco tangente std(x) Desvio padro
cos(x) Cosseno sum(x) Soma dos elementos de x
cosd(x) Cosseno do ngulo x em graus decimais tan(x) Tangente
cross(a,b) Produto vetorial dos vetores a e b tand(x) Tangente para ngulo x em graus decimais
exp(x) Exponencial (ex)
inv(x) Matriz inversa da matriz x Algumas dessas operaes podem ser aplicadas a vetores ou matrizes. Para a funo
log(x) Logaritmo natural (loge x) std(x), por exemplo, se o argumento x for um vetor o resultado ser o desvio padro desse
log10(x) Logaritmo na base 10
max(x) Maior elemento em x vetor. Se x for uma matriz, ser calculado o desvio padro para cada coluna dessa matriz.
O mesmo ocorre com as funes sum, max e mean, entre outras.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 21 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 22

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Usando os comandos vistos determine a mdia, desvio padro, a soma dos elementos, 2.2.1. Comandos
bem como os valores mximo e mnimo do vetor V abaixo:
Ao sair do OCTAVE (atravs do comando quit ou exit) todas as variveis do

V=[1 2 3 4 5 6 7 8 9] 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 especificada do workspace.
O clear (sem varivel) apaga todas as variveis.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 23 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 24
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

2.2.2. Exerccios
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
1) Armazene no workspace os seguintes valores:
ajuda sobre o comando who:
a = 3
help who b = -2.123
WHO Lista as variveis no workspace atual. c = 4*3
WHOS Lista as variveis e informaes adicionais sobre elas. d = [1 2 3 4]
e = [1; 2; 3; 4]
Outro comando til: lookfor. Este comando procura e lista todas as funes do
OCTAVE que contm a palavra-chave especificada.
Utilize os comandos who e whos e observe as diferenas.
lookfor mean
Ative o comando clear, e digite novamente o comando whos.
Resultado: mean, meansq e mean2.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 25 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 26

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

2) Armazene no workspace os seguintes valores: Comandos: save, quit (ou exit), load, clear, whos.
a = 3.452
b = -25.123 4) Atribua as seguintes expresses s variveis:
c = 4*pi a) 4.12 a pi/c para x
b) log(a + 40.1353) para y
3) Verifique o resultado das seguintes das seguintes operaes: c) log(a) para z
a) (a + b) c c) tan(c) asin(b)
b) (c b) a / b d) sin(cos(tan(c))) 5) Salve as variveis x, y, z em um arquivo chamado exemplo.mat.

Efetuar os clculos (formato padro), depois mudar para o formato long 6) Saia do OCTAVE, entre novamente e carregue as variveis salvas anteriormente.

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

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 27 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 28

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Outros exemplos com incrementos diferentes de um:


3. OPERAES COM MATRIZES E VETORES

> y = 0:pi/4:pi
O OCTAVE permite a manipulao de linhas, colunas, elementos individuais e partes
de matrizes. que resulta em:

3.1. Gerao de vetores y =


0.0000 0.7854 1.5708 2.3562 3.1416
A gerao de uma seqncia de nmeros pode ser feita utilizando:
Incrementos negativos tambm so possveis.
> x = 1:5 ou > x = 1:1:5
> z = 6 : -l : l
gera um vetor linha contendo os nmeros de 1 a 5 com incremento unitrio. z =
6 5 4 3 2 1

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 29 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 30
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Pode-se tambm gerar vetores usando a funo linspace. 3.2. Elementos das matrizes
Sintaxe: linspace (inicio, fim, nmero de elementos)
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:
Exemplo de uso:

A =
> k = linspace (0, l, 6) l 2 3
4 5 6
k= 7 8 9
0 0.2000 0.4000 0.6000 0.8000 1.0000
Qual o resultado da seguinte operao?

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

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 31 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 32

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Resulta em: Extrao de submatrizes de uma dada matriz

A = A =
l 2 3 92 99 11 18
4 5 6 98 80 17 14
7 8 10 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

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 33 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 34

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

>> C = A(2:3,2:4) Gerao de algumas matrizes especiais:


C =
80 17 14 Exemplo 1: B uma matriz 10x10 unitria.
81 88 20 >> B = ones (10)

C uma submatriz 2x4, formada pelas linhas 2 e 3 e colunas 2 a 4 da matriz A. Exemplo 2: C uma matriz de dimenso 8x8 com elementos nulos.
>> C = zeros (8)
>> D = triu(A) << Extrai a triangular superior.
D =
92 99 11 18
Matriz identidade: eye
00 88 17 14
Matriz diagonal: diag << Extrai a diagonal de uma dada matriz.
00 00 88 20
Matriz de nmeros randmicos: rand

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 35 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 36
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

m+100
3.3. Operaes com matrizes ans =
108 101 106
Operaes matemticas simples (adio, subtrao, diviso e multiplicao)
103 105 107
envolvendo matrizes so semelhantes s operaes com escalares.
104 109 102

m=[8 1 6; 3 5 7; 4 9 2];
Nas operaes entre matrizes devem ser respeitadas as regras usuais da matemtica

3*m quanto ao nmero de linhas e colunas que duas matrizes devem ter para serem somadas,
multiplicadas, etc. No entanto existem operaes especiais. Sendo A=[a1 a2 ... an] e B=[b1
ans = b2 ... bn] duas matrizes, ento:
24 3 18
9 15 21 A./B = [a1/b1 a2/b2 ... an/bn];

12 27 6 A.*B = [a1b1 a2b2 ... anbn];


A.^B = [a1^b1 a2^b2 ... an^bn];

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 37 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 38

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Alguns comandos adicionais para a operao com matrizes: 3.4. Exerccios


1) Dadas as seguintes matrizes e vetores: A = [1 2 3; 4 10 6; 7 8 19]
inv Matriz inversa de uma dada matriz B = [4 5 6; 1 2 3; 8 7 6]
Sintaxe: inv(matriz)
det Calcula o determinante (D) de uma matriz bem como o C = [4 5 6]
recproco do nmero de condio (RCOND) L = [4; 5; 6]
Sintaxe: [D, RCOND]=det(matriz)
trace Trao de uma matriz 2) Calcule:
Sintaxe: trace(matriz)
a) D = A+B g) Determinar a inversa de A e salvar em D
cond Nmero de condio de uma matriz.
Sintaxe: cond(matriz) b) E = A*B h) Produto D vezes A
rank Rank de uma matriz
c) F = A-B i) Autovalor e Autovetor de A
Sintaxe: rank(matriz)
eig Permite calcular os autovalores (e respectivos autovetores) d) G = BT-A j) Calcule o trao e o determinante de A
de uma dada matriz. Sintaxe: [v, ]=eig(matriz) e) H = ATA k) Resolver o sistema AX = L
svd Permite aplicar a uma dada matriz o algoritmo SVD
Singular Value Decomposition onde A = U.S.Vt f) I = A CT

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 39 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 40

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

4. GRFICOS
Caso o usurio queira modificar a interface de sada o comando
graphics_toolkit (opo) pode ser usado.
A construo de grficos no OCTAVE bem simples e a maior parte dos comandos
As imagens abaixo mostram o mesmo grfico gerado com as opes fltk e
muito parecida com os usados pelo MATLAB, sendo possvel a gerao de grficos
gnuplot, respectivamente.
bidimensionais ou tridimensionais.

Existe no OCTAVE um grande conjunto de comandos que permite a construo de


grficos.

Na verso atual do OCTAVE a sada grfica , por default, criada usando o OpenGL
e Qt. Caso as bibliotecas do OpenGL no estejam disponveis o GnuPlot utilizado.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 41 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 42
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

4.1. Comandos grficos bsicos

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


de grficos bidimensionais no OCTAVE. Se y um vetor, plot(y) produz um grfico linear dos elementos de y versos o ndice
dos elementos de y.
plot Visualizao de grficos lineares no plano
bar Grfico de barras Por exemplo, para plotar os nmeros [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0.14], entre com
stem Sequncia discreta
stairs Plotar em degraus o vetor y e execute o comando plot, como mostrado:
errorbar Plotar barra de erros
hist Plotar histograma >> y = [0.0 0.48 0.84 1.0 0.91 0.6 0.14];
comet Plotar com trajetria de cometa
>> plot(y)

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 43 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 44

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Resultado:
Se t e y so vetores com dimenses iguais, o comando plot(t,y) produz um grfico
bidimensional dos elementos de t versos os elementos de y, por exemplo

>> t = 0:0.05:4*pi;
>> y = sin(t);
>> plot(t,y)

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 45 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 46

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

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

Comando plot com mltiplos argumentos.

Exemplo:

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

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 47 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 48
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Resultado: 4.2. Estilos de Linha e Smbolo

1
Os tipos de linhas, smbolos e cores usadas para mostrar os grficos podem ser
0.8
controlados. Seguem alguns exemplos:
0.6

0.4
>> x = 0:0.05:1;
0.2
>> subplot(1,3,1);
0
>> plot(x,x.^2,'*k')
-0.2
>> subplot(1,3,2);
-0.4

-0.6
>> plot(x,log(x+0.1),'-b')

-0.8
>> subplot(1,3,3);

-1
>> plot(x,-x.^3,'+r')
0 2 4 6 8 10 12 14

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 49 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 50

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

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

TIPO DE LINHA TIPO DE PONTO CORES

- __________ y amarelo

m magenta

c cian

Mais opes: '--', ':', '-.'
r vermelho
+ +++++++++
g verde
x xxxxxxx
b azul
^ ^^^^^^^
w branco

Mais opes: 's', 'd', 'p', 'h'. k preto

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 51 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 52

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

4.3. Exerccios Resultado:

>> t = 0:0.5:4*pi;
>> y = sin(t);

Criar os seguintes grficos:

Grfico simples (plot)


Grfico de barras (bar)
Sequncia discreta (stem)
Escada (stairs)

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 53 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 54
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Dado o vetor: y= [ 1 2 3 7 3 8 8 4 10 1 3 7 8 9 10 6] construa o grfico de barras bem Resultados: Grfico de barras e histograma de frequncias, respectivamente.
como o histograma (hist) de frequncias.

>> bar(y);
>> grid('on');

>> hist(y,50);
>> grid('on');

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 55 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 56

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Verificar o resultado do uso dos seguintes comandos: Resultado final:

>> t=1:pi/10:6*pi;
>> y=(1-t).*sin(t);
>> comet(y)

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 57 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 58

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

4.4. Gerao de Grficos Tridimensionais e Isolinhas


O comando mesh(x,y,z) cria uma perspectiva tridimensional plotando os elementos da
Estes so alguns comandos para gerar grficos tridimensionais e contornos. matriz z em relao ao plano definindo pelas matrizes x e y. Exemplo de uso:

plot3 Mostrar grfico no espao 3D >> t = -2:0.2:2;


contour Permite visualizar curvas de nvel no plano
>> [x, y] = meshgrid(t, t);
contour3 Permite visualizar curvas de nvel no espao 3D
meshgrid Permite a criao de estruturas (2D e 3D) para representao 3D >> z = x.* exp(-x.^2 - y.^2);
mesh Permite plotar malhas 3D >> mesh(x,y,z)
meshc Combinao mesh/contour
surf Plotar superfcie 3D
surfc Combinao do comando surf com contour (permite ver curvas de
nvel)
slice Plot visualizao volumtrica
cylinder Gerar cilindro
sphere Gerar esfera

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 59 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 60
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Resultado:

Verifique as seguintes opes:


>> surf(x, y, z) Exemplos de outros paletes de cores: autumn, bone, cool, copper, cubehelix, flag, gray,
>> colormap(gray); hot, hsv, jet, lines, ocean, pink, prism, rainbow, spring, summer, white, winter,
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 61 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 62

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Outros exemplos de superfcies (ainda usando a mesma funo) no qual se considera Resultados:
que a superfcie iluminada por uma fonte de luz, dando o efeito de "sombreamento".
Seguem algumas das alternativas:

>> colormap(bone)
>> surfl(x, y, z), shading faceted

>> colormap(bone)
>> surfl(x, y, z), shading flat
(a)... ..(b) (c)
>> colormap(bone) (a) Sombreamento interpolado, com as linhas de transio visveis (shading faceted)
>> surfl(x, y, z), shading interp (b) Sombreamento interpolado mostrando as faces planas (shading flat)
(c) Sombreamento interpolado (shading interp)

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 63 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 64

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

4.5. Anotaes no Grfico


Curvas de nvel
O comando contour(z,10) mostra a projeo da superfcie definida (pela funo z), no O OCTAVE possui alguns comandos que permitem adicionar informaes em um
plano cartesiano xy, com 10 iso-linhas. A figura seguinte mostra o resultado para a grfico, como por exemplo:
superfcie anterior.

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

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 65 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 66
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Exemplos:

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


>> title Grfico da funo f(x)=seno(x), -pi<x<pi;
>> xlabel x;
>> ylabel f(x);
>> grid (on);
>> text(1,.2,Curva sin(x));
>> gtext Sin(x);
Exemplo do comando fplot para mltiplas funes

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

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 67 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 68

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Na sequncia so mostradas outras possibilidade para a visualizao de mltiplas Resultado:


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");
>> legend('y1','y2','y3');

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 69 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 70

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

5. ARQUIVOS SCRIPT (.m)

Os comandos do OCTAVE so normalmente digitados na rea de trabalho, onde cada


linha de comando introduzida e imediatamente processada. O OCTAVE tambm capaz
de executar sequncias de comandos armazenadas em arquivos ASCII com extenso m. Diretrio de
Estes arquivos podem ser criados por alguns aplicativos como Notepad++, Notepad, trabalho
Textpad, Sublime Text, etc.
Uma outra possibilidade para criar e editar estes arquivos por meio do editor do Editor
prprio ambiente de trabalho do OCTAVE. Como pode-se notar na prxima figura, tem-
se na parte inferior da tela a aba Editor. sugerido que antes de criar o arquivo, com
extenso m, que seja escolhido e definido o diretrio de trabalho, como indicado na
prxima figura.
GUI do OCTAVE 4.0.0, na qual so destacados e Editor e o Diretrio de trabalho.
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 71 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 72
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Exemplo de arquivo script


Na sequncia so apresentados alguns comandos e declaraes especiais para serem
#Mostrar a funcao y=ax^2 + bx + c no intervalo -5<x<5
usados nos arquivos script, por exemplo: clear
aux='s';
while aux=='s',
Comando Funo clc
% ou # Inserir um comentrio no arquivo .m disp(' ');
disp(' Dada a equao y=ax^2 + bx + c ...'); disp(' ');
clear Apagar todos os dados da memria a=input('Digite o valor de a = ');
input Usado para a entrada de dados a partir da janela b=input('Digite o valor de b = ');
de comando c=input('Digite o valor de c = ');
x=-5:0.1:5;
pause Provoca uma pausa na execuo do arquivo at y=a*x.^2+b*x+c;
que qualquer tecla seja digitada plot(y)
clc Limpar a janela de comando figure(1)
disp(' Acione a tecla Enter para continuar.');
figure(n) Abrir e mostrar a janela grfica de nmero n pause
disp(...) Mostrar no ambiente de trabalho o texto clc
colocado entre ... close
disp(' ');
close Fechar todas as janelas grficas aux=input(' Deseja ver outra curva ? (s/n) ==> ','s');
endwhile
disp('Programa finalizado.');

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 73 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 74

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

6. CONTROLE DE FLUXO
muito comum construes em que conjuntos de laos for so usados,
principalmente com matrizes:
Os comandos que controlam o fluxo especificam a ordem em que as operaes so
realizadas. No OCTAVE estes comandos so semelhantes aos usados na linguagem C.
for i=1:10;
for j=1:10;
6.1. Lao for
A(i,j)=i+j;
B(i,j)=i-j;
O lao for o controlador de fluxo mais simples e usado na programao OCTAVE. endfor
Analisando a expresso endfor
>> for i = 1:n; A
>> for j = 1:n;
>> ... B
>> endfor C=A+B
>> endfor

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 75 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 76

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

6.2. Comando while

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


Operadores relacionais: Operadores lgicos
< Menor do que & e
a = 1; b = 15; - Inicialmente a condio a<b testada.
> Maior do que | ou
while a<b - Se ela for verdadeira o corpo do lao ser executado
<= Menor ou igual a ~ no
a = a+1 e o procedimento repetido.
>= Maior ou igual a
b = b-1
- Quando o teste se tornar falso o lao terminar, e a
endwhile == Igual
execuo continuar no comando que segue o lao,
disp(fim do loop) ~= Diferente
aps o endwhile.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 77 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 78
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

6.3. Declaraes if, else


7. ABERTURA E VISUALIZAO DE IMAGENS
A seguir, apresentado um exemplo do uso da declarao if no OCTAVE.
So vrios os comandos destinados visualizao e processamento de imagens. Boa
for i = 1:5; parte destes comandos incorporada em bibliotecas (ou pacotes) especficas como a
for j = 1:5;
if i == j denominada image, disponvel na pgina http://octave.sourceforge.net/.
A(i,j) = 2; O propsito central desta seo apresentar apenas alguns comandos bsicos, em
else
if abs(i-j) == 1 funo das diversas possibilidades de processamento. Dada a diversidade de comandos
A(i,j) = 1;
else um, ou mais cursos poderiam ser ministrados com este propsito.
A(i,j) = 0; Pode-se notar que boa parte dos comandos so similares ao da biblioteca MATLAB.
endif
endif Para detalhes adicionais sobres os diversos comando sugere-se McANDREW (2004) e
endfor
endfor EATON et al (2015).
A

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 79 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 80

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

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


A tabela seguinte mostra alguns comandos bsicos, que permitem a operao com
imagens no OCTAVE: Crie um arquivo (.m), digite, salve e execute os comandos abaixo:

warning('off');
imread Faz a leitura de imagens pkg load image;
nome='lenna.jpg';
image Permite a visualizao de uma matriz como uma imagem DATA=imread(nome);
hist Calcula o histograma de um conjunto de dados
rgb2gray Converte imagem colorida (RGB) para tons de cinza figure;
axis Controla a aparncia e a escala dos eixos image(DATA);
disp Visualizao de um vetor no modo texto xlabel([ 'Imagem: ' nome ]);
disp([ 'Imagem entrada: ' nome ]);
figure Abre uma nova janela grfica
colormap Permite definir um mapa de cores figure;
Exemplo: colormap(gray(256)) DATAg=rgb2gray(DATA);
imfinfo Funo que retorna uma estrutura que contem diversas image(DATAg);
informaes sobre determinada imagem colormap(gray(256));
Exemplo de uso: imfinfo(arquivo_imagem) xlabel([ 'Imagem (tom de cinza) ' ]);
disp([ 'Imagem (tom de cinza) : ok' ]);

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 81 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 82

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

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

No mesmo arquivo criado antes, escreva um cdigo que permita criar a imagem No mesmo arquivo criado antes, escreva um cdigo que permita criar a imagem
negativa, em tom de cinza. Mostre esta imagem: negativa, em tom de cinza. Mostre esta imagem:

... ...

figure; figure;
DATAn=255.-DATAg; DATAn=255.-DATAg;
image(DATAn); image(DATAn);
colormap(gray(256)); colormap(gray(256));
xlabel([ 'Imagem (negativa)' ]); xlabel([ 'Imagem (negativa)' ]);
disp([ 'Imagem (negativa) : ok' ]); disp([ 'Imagem (negativa) : ok' ]);

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 83 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 84
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Leitura / Clculo do Histograma de Frequncia / Visualizao do Histograma

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


warning('off');
convertida para tons de cinza e a negativa. pkg load image;
nome='lenna.jpg';
DATA=imread(nome);
DATAg=rgb2gray(DATA);
50 50 50

100 100 100 figure;


150 150 150 image(DATAg);
200 200 200 colormap(gray(256));
250 250 250 xlabel([ 'Imagem: ' nome ]);
300 300 300 disp([ 'Imagem (original): ' nome ]);
350 350 350

400
50 100 150 200 250 300 350 400
400
50 100 150 200 250 300 350 400
400
50 100 150 200 250 300 350 400
[freq,tom]=hist(DATAg(:),0:255);
Imagem: lenna.jpg Imagem (tom de cinza) Imagem (negativa) figure;
plot(tom,freq);
title([ 'Histograma' ]);

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 85 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 86

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Resultado do processamento anterior, onde mostrada a imagem lida e respectivo Alguns comandos adicionais relacionado ao processamento de imagens:
histograma.
imshow Permite a visualizao de uma imagem
Histograma
3500 imagesc Permite a visualizao de uma imagem aps a aplicao de uma escala,
de modo que todo o mapa de cores seja utilizado
50 3000
imwrite Permite salvar uma imagem em arquivo (imwrite(imagem, nome.ext))
100 Formatos aceitos: jpg, tif, gif, pgm, bmp, png, etc
2500
150 filter2(B,X) Realiza a correlao do dado em X usando o filtro 2D armazenado em B
2000
200 conv2 (A,B) Realiza a convoluo da matriz A sobre a matriz B
1500 uint8 Converte os elementos para inteiros sem sinal (8 bits)
250
1000
int8 Converte os elementos para inteiros de 8 bits
300

350 500

400 0
50 100 150 200 250 300 350 400 0 50 100 150 200 250 300

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 87 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 88

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

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

pkg load image; ...


nome='lenna.jpg';
DATA=imread(nome); f55=(1/25).*[ 1 1 1 1 1; 1 1 1 1 1;
DATA=rgb2gray(DATA); 1 1 1 1 1; 1 1 1 1 1;
1 1 1 1 1 ];
figure; PARCIALb=conv2(DATA,f55,'same');
image(DATA); figure;
colormap(gray(256)); imagesc(PARCIALb);
title([ 'Imagem: ' nome ]); colormap(gray(256));
title([ 'Imagem: ' nome ' [Aps filtro mdia 5x5]' ]);
f33=(1/9).*[ 1 1 1; 1 1 1;
1 1 1 ]; f2da=[ -1 0 1; -2 0 2; -1 0 1 ];
PARCIALa=filter2(f33,DATA,'same'); PARCIAL=filter2(f2da,DATA);
figure; Figure;
image(PARCIALa); imshow(uint8(PARCIAL));
colormap(gray(256)) title([ 'Imagem: ' nome ' [Apos filtro Sobel (borda
title([ 'Imagem: ' nome ' [Aps filtro media 3x3]' ]); vertical]' ]);

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 89 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 90
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Abertura de imagem / Armazenamento em outros formatos


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

50 50 No mesmo arquivo script anteriormente escrito, incorpore no cdigo o


100 100

150 150
armazenamento das imagens aps o filtro de suavizao 3x3 e 5x5, em arquivos com
200 200
diferentes formatos:
250 250

300 300

350 350

400 400
50 100 150 200 250 300 350 400 50 100 150 200 250 300 350 400

Imagem: lenna.jpg [Aps fitro mdia 5x5] Imagem: lenna.jpg [Aps filtro Sobel (borda vertical]
...

50 imwrite(uint8(PARCIALa),"filtro3x3.jpg");
100 imwrite(uint8(PARCIALb),"filtro5x5.png");
150 disp(['Imagens filtro3x3.jpg e filtro5x5.png salvas.']);
200

250

300

350

400
50 100 150 200 250 300 350 400

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 91 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 92

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

8. IMPORTAO / EXPORTAO DE DADOS

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


Neste tpico so apresentados alguns comandos adicionais relacionados arq1.sai
manipulao de arquivos e ao uso de funes criadas pelo usurio. 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
8.1. Importao e Exportao de Dados

Os dados obtidos por outros programas podem ser importados pelo OCTAVE, desde
Os dados (matrizes, vetores, escalares, cadeia de caracteres, etc) disponveis no que estes dados sejam gravados em formato apropriado. Se os dados so armazenados no
Ambiente de Trabalho do OCTAVE, como foi visto, podem ser armazenados em arquivos formato ASCII, e no caso de matrizes, com colunas separadas por espaos e cada linha da
no modo texto, binrio (e outros formatos), utilizando o comando save. matriz em uma linha do texto, o comando load pode ser usado.
Existem diversas maneiras de utilizar este comando, como pode-se ver nos exemplos
mostrados na sequncia:

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 93 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 94

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Por exemplo suponha que um programa qualquer criou arquivo polig1.dat que
contm a seguinte matriz.
polig1

1 1 polig1 =
3 1 1 1
3 3 3 1
1 3 3 3
1 1
1 3
1 1
Ao executar o comando:
>> load polig1.dat

o OCTAVE importa a matriz, que armazenada com o nome polig1.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 95 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 96
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Exemplo:
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, >> x = rand(3,3)
anteriormente exportadas usando o comando save, pode-se fazer: x =
0.2190 0.6793 0.5194
load arq1 save arq1 X Y Z 0.0470 0.9347 0.8310
load arq2.sai save arq2.sai X Y Z -ascii 0.6789 0.3835 0.0346
load arq3.sai save arq3.sai X Y Z -ascii -double
>> y = rand(3,3)
Deve-se ressaltar que o comando save, quando usado para exportar os dados do
y =
OCTAVE em formato texto, exporta apenas um bloco contendo todas as variveis. Quando 0.0535 0.0077 0.4175
os dados so importados atravs do comando load, apenas uma varivel com nome do 0.5297 0.3835 0.6868

arquivo criada. 0.6711 0.0668 0.5890

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 97 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 98

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

>> save arq2.sai x y -ascii 9. CRIAO DE FUNES

>> clear 9.1. Criao de funes


>> whos
O uso de funes muito til tanto na execuo de algumas tarefas repetitivas
>> load arq2.sai
>> arq2 quanto no aproveitamento do cdigo em diferentes aplicaes. Pode-se, deste modo, fazer

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

0.2190 0.6793 0.5194 A estrutura geral de uma funo que pode ser criada pelo usurios do OCTAVE a
0.0470 0.9347 0.8310
0.6789 0.3835 0.0346 seguinte:
0.0535 0.0077 0.4175
0.5297 0.3834 0.6868 function [ retorno ] = teste (variveis)
0.6711 0.0668 0.5890 ...
endfunction
Repita o procedimento usando a opo save arq2.sai x y e compare os
resultados.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 99 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 100

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Na sequncia so mostrados dois exemplos de funes. Uma delas foi criada com o Funo f_matriz_rotacao armazenada no arquivo f_matriz_rotacao.m
objetivo de, dado um ngulo (alfa) em radianos, montar a matriz de rotao M:
function Mrot=f_matriz_rotacao(alfa)

cos() sin() # F_MATRIZ_ROTACAO Calcula a matriz de rotao


M ( ) = # no espao 2D
sin() cos() . # - Entrada: ngulo em graus
# - Retorno: Matriz de rotao 2x2
#
A segunda funo tem o propsito de, dada uma matriz de rotao M e um ponto de # Autores: Mauricio Galo e Paulo Camargo
coordenas (x,y), aplicar a matriz de rotao de modo que se tenha: # UNESP, 2016

alfa=alfa*pi/180;
Mrot=[ cos(alfa) sin(alfa);
x ' x -sin(alfa) cos(alfa)];
y ' = M ( ) y
endfunction

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 101 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 102
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Funo f_aplica_rotacao armazenada no arquivo f_aplica_rotacao.m Como exemplo de aplicao das funes criadas para o OCTAVE, inicialmente
escreva um script que permite ler nas variveis polig1.dat e polig2.dat, bem como permita
function [xrot,yrot]=f_aplica_rotacao(M,x,y)
a visualizao destes vetores, usando o comando plot:
# F_APLICA_ROTACAO Faz a rotao de um ponto
# do espao 2D, (x,y), usando
# a matriz de rotao M Contedo do Contedo do
# - Retorno: Coordenadas rotacionadas do ponto arquivo arquivo
# (x,y) polig1.dat polig2.dat
# 0 0 2 2
# Autores: Mauricio Galo e Paulo Camargo 1 0 3 3
# UNESP, 2016 1 1 2 3
0 1 2 2
xrot=x*M(1,1) + y*M(1,2); 0 0
yrot=x*M(2,1) + y*M(2,2);

endfunction

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 103 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 104

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

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

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


dos dois polgonos e faa a visualizao.
clear;
load 'polig1.dat'
load 'polig2.dat' ...
ROT = f_matriz_rotacao(30);
[lin1,col1]=size(polig1);
[lin2,col2]=size(polig2); [x1r,y1r]=f_aplica_rotacao(ROT,x1,y1);
[x2r,y2r]=f_aplica_rotacao(ROT,x2,y2);
x1=polig1(1:lin1,1);
y1=polig1(1:lin1,2); figure;
x2=polig2(1:lin2,1); plot(x1r,y1r,x2r,y2r);
y2=polig2(1:lin2,2);
figure;
figure; plot(x1,y1,x2,y2,x1r,y1r,x2r,y2r);
plot(x1,y1,x2,y2);

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 105 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 106

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Resultado da visualizao dos polgonos aps rotao REFERNCIAS

3 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
2.5 Treinamento PET. Florianpolis SC, 1999. 29p.
EATON, J. W.; BATEMAN, D.; HAUBERG, S. GNU Octave Edition 3 for Octave version
2 3.2.3, July, 2007. 672p.
EATON, J. W.; BATEMAN, D.; HAUBERG, S.; WEHBRING, R. GNU Octave Edition 4 for
1.5 Octave version 4.0.0 Free Your Numbers, March, 2015. 966p.
HANSELMAN, D.; LITTLEFIELD, B. Matlab - Verso do Estudante: guia do usurio
1
(Traduo). So Paulo: Makron Books, 1997. 305p.
0.5 McANDREW, A. Introduction to Digital Image Processing with MATLAB. Thomson Course
Technology, 2004. 509p. ISBN: 0-534-40011-6
0 QUARTERONI, A.; SALERI, F.; GERVASIO, P. Scientific Computing with MATLAB and
Octave. Fourth Edition. Text in Computational Science and Engineering. BARTH, T. J.; GRIEBEL,
-0.5 M.; KEYES, D. E.; NIEMINEN, R. M.; ROOSE, D.; SCHLICK. T. (Eds.). Lausanne: Springer,
0 1 2 3 4 5 2014.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 107 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 108
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

PAGAMISSE, A.; SOUZA, L. H. G. Introduo ao Software Octave. Semana de Cursos de


Matemtica, Estatstica e Computao, 25-29 de agosto de 2003, FCT/UNESP, Presidente Prudente,
2003. 54p. ANEXOS
SIGMON, K. Matlab Primer Third Edition. Department of Mathematics, University of Florida,
Gainesville, 1993. 35p. Disponvel em http://skomam.vsb.cz/program/primer.pdf. Acesso em
13/Junho/2015. Nesta seo so apresentados alguns exemplos adicionais de comandos e
respectivos resultados, que podem ser teis em algumas aplicaes na visualizao de
SIQUEIRA, A. F. de Octave Seus primeiros passos na programao cientfica. So Paulo:
Casa do Cdigo, 2015. 202p.
dados em algumas reas das cincias exatas e engenharias, usando o aplicativo OCTAVE.

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

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 109 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 110

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Anexo I

%{
Exemplo de uso de alguns comandos do Octave
Comandos (principais): subplot, bar, hist.

Autores: M. Galo e Paulo de O. Camargo


Unesp, Pres. Prudente, 2016
%}

clear
y = [1 2 3 7 3 8 8 4 10 1 3 7 8 9 10 6];
figure;
subplot(2,1,1);
bar(y,'g');
xlabel('Grafico de barras');
grid
subplot(2,1,2);
hist(y,50,'b')
xlabel('Histograma de frequencia');
grid Resultado grfico do script anterior.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 111 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 112

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Anexo II 12.9 7.0 14.1 15.1 0;


18.8 9.0 15.5 16.2 0;
%{ 15.1 12.0 18.4 17.4 0;
Exemplo de uso de alguns comandos do Octave 18.0 19.2 20.4 19.3 0;
Comandos (principais): bar, legend. 22.8 21.5 22.1 22.2 0;
21.1 25.0 22.9 22.0 0 ];
Autores: M. Galo e Paulo de O. Camargo B=bar(dados);
Unesp, Pres. Prudente, 2016 legend(B,'2012','2013','2014','2015','2016');
%} legend('Boxoff');
meses=({'Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set
clear ','Out','Nov','Dez'});
figure; set(gca,'XTickLabel',meses);
periodo = 2012:1:2016; ylabel('Temperatura minima mensal [graus C]');
dados = [ 19.1 23.5 23.7 24.7 24.4;
23.5 21.5 23.5 23.7 23.3;
18.5 20.8 23.0 21.3 21.3;
17.0 19.8 19.7 21.9 27.5; Obs.: Fonte dos dados: www.ciiagro.sp.gov.br. Os dados referentes ao ms de abril/2016
14.0 17.1 12.5 15.2 0; corresponde coleta de dados dos primeiros 15 dias de abril, uma vez que os dados foram
14.3 14.3 14.5 13.9 0; obtidos neste site em 16/Abril/2016.
(continua)
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 113 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 114
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Anexo III

%{
Exemplo de uso de alguns comandos do Octave
Comandos (principais): pie.

Autores: M. Galo e Paulo de O. Camargo


Unesp, Pres. Prudente, 2016
%}

PAIS = {'CHINA 49%' 'JAPAO 12%' 'ALEMANHA 6,7%' 'COREIA DO


SUL 3,8%' 'FRANCA 2,6%' 'HOLANDA 2,2%' 'ITALIA 2,6%' 'OUTROS
21,1%'};
DATA = [ 49 12 6.7 3.8 2.6 2.2 2.6 21.1 ];
figure;
pie(DATA,PAIS);
Resultado grfico do script anterior. S=['PRINCIPAIS COMPRADORES DE MINERIO DE FERRO BRASILEIRO EM
2010. Fonte: IBRAM'];
title(S,'fontsize',11);
Fonte dos dados: CIIAGRO Centro Integrado de Informaes Agrometeorolgicas (site:
www.ciiagro.sp.gov.br)

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 115 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 116

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Anexo IV

%{
Exemplo de uso de alguns comandos do Octave
Comandos (principais): plot, legend, visualizao de
letras gregas.

Autores: M. Galo e Paulo de O. Camargo


Unesp, Pres. Prudente, 2016
%}

alpha = 2;
beta = 2.4;
Delta = pi;
t=0:0.1:2*pi;
plot(t,alpha*sin(t),t,beta*sin(t/2),t,Delta*sin(t/2.5));
xlabel('Angulo t [rad], \alpha = 2, \beta = 2.4, \Delta =
\pi');
legend({'\alpha*sin(t)','\beta*sin(t/2)','\Delta*sin(t/2.5)'
},'location','southwest');
Grfico resultante do script anterior. grid
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 117 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 118

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Anexo V

%{
Exemplo de uso de alguns comandos do Octave
Comandos (principais): num2str, linewidth.

Autores: M. Galo e Paulo de O. Camargo


Unesp, Pres. Prudente, 2016
%}

lambda=input('Entre com o fator de escala: ');


figure(1)
t=0:0.2:6*pi;
y=(1-t).*sin(t);
y1=lambda*(1-t).*sin(t);
plot(t,y,'linewidth',2,t,y1,'linewidth',2);
ylabel('f(t)');
legend('y(t)','\lambda.y(t)','location','northwest');
legend('boxoff');
Grfico resultante do script anterior. (continua)
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 119 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 120
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

S = [ 'Angulo t [rad], Fator de escala: \lambda=' Anexo VI


num2str(lambda) ];
xlabel(S); %{
Exemplo de uso de alguns comandos do Octave
Grfico resultante Comandos (principais): size, delaunay, triplot, axis.
do script anterior.
Autores: M. Galo e Paulo de O. Camargo
Unesp, Pres. Prudente, 2016
%}

clear
xy = [
6.9 4.9 1.1 1.2 7.9 5.7 2.4 4.6 3.1 3.4 5.5 9.1 7.1 8.5 2.3;
7.1 5.7 7.7 2.6 1.2 0.8 0.6 3.0 4.7 7.3 8.7 6.1 4.6 2.4 5.5
];
xy=xy';
[lin,col]=size(xy);
x=xy(1:lin,1);
y=xy(1:lin,2);
figure
(continua)
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 121 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 122

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

subplot(1,2,1)
plot(x,y,'sr');
title('Pontos da amostra.');
axis('square');
grid;

subplot(1,2,2)
plot(x,y,'sr');
tri=delaunay(x',y');
hold on;
triplot(tri,x,y);
title('Pontos da amostra e Triangulacao de Delaunay.');
axis('square');
grid;

Grficos resultantes do script anterior.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 123 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 124

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Anexo VII figure;


plot(xn,yn,'.r');
%{ xlabel('X(m)');
Exemplo de uso de alguns comandos do Octave ylabel('Y(m)');
Comandos (principais): subplot, bar, hist.
figure;
Autores: M. Galo e Paulo de O. Camargo plot3(xn,yn,zn,'.r');
Unesp, Pres. Prudente, 2016 xlabel('X(m)');
%} ylabel('Y(m)');
zlabel('Z(m)');
clear
load terreno.txt limX = min(xn):1.:max(xn);
[lin,col]=size(terreno); limY = min(yn):1.:max(yn);
x=terreno(1:lin,1); [xf,yf] = meshgrid(limX, limY);
y=terreno(1:lin,2); zf = griddata(xn, yn, zn, xf, yf);
z=terreno(1:lin,3);
xn = x - min(x); figure;
yn = y - min(y); plot(xn,yn,'.r');
zn = z; hold on
contour(zf,50,'-b');
(continua) (continua)

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 125 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 126
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

xlabel('X(m)'); Contedo do arquivo terreno.txt.


ylabel('Y(m)');
10605.777 14253.405 847.374 10654.248 14300.966 832.379 10645.834 14366.175 850.873
10599.733 14226.811 849.188 10677.961 14273.010 821.125 10569.665 14349.903 855.487
10615.293 14198.717 843.856 10695.797 14296.792 830.147 10566.565 14352.056 855.569
figure; 10634.561 14206.868 835.203 10687.212 14311.491 835.304 10551.639 14366.817 853.152
surfc(xf, yf, zf); 10630.045
10626.659
14231.201
14263.897
834.698
834.841
10702.598
10727.848
14296.371
14302.539
825.103
825.620
10598.039
10586.884
14338.327
14319.117
855.792
855.908
title('Superficie topografica'); 10646.331 14232.702 827.488 10722.865 14257.941 816.945 10573.056 14334.192 856.122
10650.098 14268.751 824.985 10757.893 14332.396 825.310 10555.576 14312.625 853.111
xlabel('X(m)'); 10665.250 14256.447 818.154 10724.310 14329.433 829.970 10558.450 14312.015 853.120
ylabel('Y(m)'); 10664.420
10664.845
14255.853
14255.081
818.118
818.081
10720.952
10702.665
14330.090
14337.463
832.536
837.446
10535.919
10527.406
14352.970
14327.464
850.769
849.723
zlabel('Z(m)'); 10665.840 14255.707 818.115 10721.728 14311.994 828.226 10555.024 14277.472 853.647
10673.666 14244.882 817.800 10752.754 14350.186 825.874 10552.173 14277.784 853.858
10673.593 14246.394 817.840 10719.296 14350.783 829.237 10557.990 14241.363 854.902
10675.106 14247.072 817.834 10724.365 14348.249 834.469 10560.678 14241.972 854.754
Na sequncia so mostrados o arquivo terreno.txt, usado no script anterior, 10671.091 14244.626 818.551 10693.065 14355.301 843.320 10568.406 14262.295 854.681
bem como os quatro grficos resultantes da execuo deste script. 10678.698
10688.459
14242.686
14268.374
814.706
821.455
10734.297
10695.266
14354.692
14380.014
830.744
843.335
10576.697
10523.849
14305.307
14268.045
855.266
851.384
10691.294 14259.813 816.981 10617.750 14403.847 851.262 10587.444 14202.788 849.155
10695.599 14275.018 823.062 10621.073 14404.658 851.418 10586.427 14199.660 848.979
10697.511 14260.744 815.977 10609.384 14441.500 854.433 10579.011 14232.853 854.422
10687.189 14244.902 812.722 10587.327 14446.788 851.514 10547.881 14213.814 850.228
10695.143 14239.535 805.741 10598.051 14374.378 853.819 10595.544 14177.230 844.544
10675.229 14232.082 816.265 10599.717 14372.089 853.823 10598.582 14179.058 844.836
10687.963 14217.071 809.833 10618.061 14389.550 852.020 10544.620 14192.465 846.335
10595.478 14287.307 851.135 10615.075 14390.768 851.944 10589.274 14162.826 842.976
10614.218 14318.957 850.357 10587.427 14423.912 848.785 10587.583 14166.114 842.864
10642.839 14346.278 847.213 10572.092 14397.026 852.387 10695.918 14217.893 806.531
10678.690 14326.350 838.391 10652.161 14396.553 853.625
# Fim do arquivo
(continua) (continua)

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 127 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 128

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Grficos 1 e 2 resultantes do script anterior. Grficos 3 e 4 resultantes do script anterior.

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 129 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 130

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

Anexo VIII
[xi,yi] = meshgrid(Lmin:0.5:Lmax);
%{ zi = interp2(x, y, z, xi, yi);
Exemplo de uso de alguns comandos do Octave figure;
Comandos (principais): meshgrid, surf, interp2. surf(xi,yi,zi);

Autores: M. Galo e Paulo de O. Camargo zi1 = interp2(x, y, z, xi, yi,'nearest');


Unesp, Pres. Prudente, 2016 figure;
%} surf(xi,yi,zi1);

clear zi2 = interp2(x, y, z, xi, yi,'cubic');


Lmin = -2*pi; figure;
Lmax = 2*pi; surf(xi,yi,zi2);
[x,y] = meshgrid(Lmin:Lmax);
z = (1/3)*x.*cos(y/2); zi3 = interp2(x, y, z, xi, yi,'spline');
figure;
figure; surf(xi,yi,zi3);
surf(x,y,z);

(continua)
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 131 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 132
TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia TUTORIAL DO OCTAVE / OCTAVE TUTORIAL UNESP / Departamento de Cartografia

a) b)

Superfcies 3 a 5 resultantes do script


Superfcies 1 e 3 resultantes do script anterior. anterior, onde os interpoladores nearest
(a), cubic (b) e spline (c) foram
utilizados.

c)

Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 133 Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016 134

You might also like