Vous êtes sur la page 1sur 24

Universidade Estadual Paulista

FCT Campus de Presidente Prudente

Tutorial do OCTAVE /
OCTAVE Tutorial

Autores:
M
Ma
au
urriicciio
oG
Ga
allo
o
P
Pa
au
ullo
od
de
eO
Olliiv
ve
eiirra
aC
Ca
am
ma
arrg
go
o

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
9. CRIAO E USO DE FUNES

Autores:
M
Ma
au
urriicciio
oG
Ga
allo
o
P
Pa
au
ullo
od
de
eO
Olliiv
ve
eiirra
aC
Ca
am
ma
arrg
go
o

2
20
01
16
6

REFERNCIAS

Departamento de Cartografia / FCT - UNESP


1

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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

UNESP / Departamento de Cartografia

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.
29p.

1.1. O que OCTAVE

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
4.0.0 Free Your Numbers, March, 2015. 966p.

O OCTAVE um aplicativo que foi originalmente desenvolvido com o propsito

HANSELMAN, D.; LITTLEFIELD, B. Matlab - Verso do Estudante: guia do usurio (Traduo). So


Paulo: Makron Books, 1997. 305p.

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

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

inteno de criar um aplicativo no qual a programao fosse mais rpida do que nas
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,
1993. 35p. Disponvel em http://skomam.vsb.cz/program/primer.pdf. Acesso em 13/Junho/2015.

Deste modo, os alunos poderiam dedicar mais tempo na anlise e soluo dos
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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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

UNESP / Departamento de Cartografia

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

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

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

Interface no grfica - OCTAVE verso 3.2.4.


1

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

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.
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Fonte: http://www.octave-online.net
9

UNESP / Departamento de Cartografia

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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 do prompt do OCTAVE.
cd
dir
pwd
delete
type
what
help
quit ou exit

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

10

UNESP / Departamento de Cartografia

1.3. Pacotes / Bibliotecas adicionais do OCTAVE


O OCTAVE um software que continua em constante desenvolvimento e aps a
instalao do aplicativo, outros pacotes adicionais podem ser instalados. Para ter uma lista
dos pacotes disponveis para o OCTAVE sugere-se a consulta da seguinte pgina

Troca o diretrio de trabalho atual


Lista o contedo do diretrio atual
Mostra o path do diretrio atual de trabalho
Exclui arquivo
Exemplo de uso: delete arquivo.ext
Mostra o contedo de arquivos texto
Exemplo de uso: type arquivo.ext
Lista arquivos especficos do OCTAVE no diretrio corrente
Ajuda do OCTAVE
Exemplo de uso: help comando
Fechar o aplicativo e sair do sistema

http://octave.sourceforge.net/.
Dentre os pacotes tem-se por exemplo, para a verso 4.0.0 do OCTAVE o pacote
image, armazenado no arquivo image-2.4.0.tar.gz. Pode-se observar que este arquivo,
bem como todos os demais da verso 4.0.0 esto disponibilizados no seguinte diretrio:
C:\Octave\Octave-4.0.0\src
Antes de instalar qualquer pacote adicional, pode-se ativar o comando pkg list no
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

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


ativar o seguinte comando no prompt do OCTAVE:

UNESP / Departamento de Cartografia

2. INICIANDO O OCTAVE
2.1. Variveis
O OCTAVE trabalha essencialmente com um tipo de varivel: matriz, que pode conter

pkg install package_file_name.tar.gz


No diretrio mencionado anteriormente (C:\Octave\Octave-4.0.0\src) pode-se notar
que vrios outros pacotes/bibliotecas esto disponveis. Pode-se notar que neste diretrio
tem-se tambm o arquivo build_packages.m que contm o script que permite a
instalao de vrias outras bibliotecas.

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 n ou n x 1
(vetores).
2.1.1. Entrando com valores

Uma vez que para o desenvolvimento deste tutorial so necessrias apenas algumas
No OCTAVE no necessrio que sejam declaradas as variveis e os respectivos

delas, sugere-se a instalao apenas dos seguintes pacotes:

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

13

UNESP / Departamento de Cartografia

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

14

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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

UNESP / Departamento de Cartografia

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

diretamente os dados:
- envolva os elementos com colchetes, [ ];

(Para matrizes e vetor)


Resultado: A =

- 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:

1 2 3
A = 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.

Basta digitar:
A=[1 2 3; 4 5 6; 7 8 9]
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

15

UNESP / Departamento de Cartografia

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

16

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:

help
ans
eps
nan
realmax
realmin
inf
computer
pi
i, j
version

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


varivel = expresso

Ajuda do OCTAVE
Nome de varivel padro usado para resultados
Preciso do nmero real (ponto flutuante)
Not a Number (indeterminao: 0/0)
Maior nmero real positivo utilizvel
Menor real positivo utilizvel
Infinito: 1/0
Tipo de computador
3,14159265358979
Unidade imaginria (i2=-1)
Verso do OCTAVE

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

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


basta escrever i (ou j) depois da parte imaginria. Alguns exemplos de nmeros permitidos
so mostrados abaixo:

17

1/3

-99

.0001

9.63973

1.602E-20

6.025E23

3 + 2i

-3.1459i

3E5j

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


Podem-se construir expresses com os operadores aritmticos usuais:

significativos ou usam notao cientfica. Exemplo:

+
*

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


mostrada, para cada formato usado, da seguinte maneira:
format short
format long
format hex
format rat
format bank
format +

1.3333e+000 1.2345e-006
1.333333333333333e+000 1.234500000000000e-006
3ff5555555555555 3eb4b6231abfd271
4/3 9/7290401
(Aproximao racional)
1.33 0.00
++

adio
subtrao
multiplicao

/e\
^

Diviso
Potenciao
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

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

19

UNESP / Departamento de Cartografia

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Funes Elementares (colocadas em ordem alfabtica)

abs(x)
acos(x)
angle(x)
asin(x)
atan(x)
cos(x)
cosd(x)
cross(a,b)
exp(x)
inv(x)
log(x)
log10(x)
max(x)

(para format short)

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

20

UNESP / Departamento de Cartografia

Funes Elementares (continuao)


mean(x)
min(x)
sin(x)
sind(x)
sqrt(x)
std(x)
sum(x)
tan(x)
tand(x)

Valor absoluto ou mdulo de um nmero


Arco co-seno
Calcula o ngulo de fase (em radianos) para nmeros complexos
Arco seno
Arco tangente
Cosseno
Cosseno do ngulo x em graus decimais
Produto vetorial dos vetores a e b
Exponencial (ex)
Matriz inversa da matriz x
Logaritmo natural (loge x)
Logaritmo na base 10
Maior elemento em x

Mdia de x
Menor elemento em x
Funo seno
Funo seno para ngulo x em graus decimais
Raiz quadrada
Desvio padro
Soma dos elementos de x
Tangente
Tangente para ngulo x em graus decimais

Algumas dessas operaes podem ser aplicadas a vetores ou matrizes. Para a funo
std(x), por exemplo, se o argumento x for um vetor o resultado ser o desvio padro desse
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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

21

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Usando os comandos vistos determine a mdia, desvio padro, a soma dos elementos,

22

UNESP / Departamento de Cartografia

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
workspace so perdidas, a menos que sejam salvas usando o comando save.

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

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
ajuda sobre o comando who:

1) Armazene no workspace os seguintes valores:


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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

26

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

2) Armazene no workspace os seguintes valores:


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)
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)))

para y

c) log(a)

para z

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

27

UNESP / Departamento de Cartografia

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

28

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

Outros exemplos com incrementos diferentes de um:

3. OPERAES COM MATRIZES E VETORES


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

> y = 0:pi/4:pi
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

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

Pode-se tambm gerar vetores usando a funo linspace.

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

31

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Resulta em:

32

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

33

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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

34

UNESP / Departamento de Cartografia

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
00 88 17 14
00 00 88 20

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

35

Matriz identidade:

eye

Matriz diagonal:

diag

Matriz de nmeros randmicos:

rand

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

<< Extrai a diagonal de uma dada matriz.

36

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

3.3. Operaes com matrizes


Operaes matemticas simples (adio, subtrao, diviso e multiplicao)
envolvendo matrizes so semelhantes s operaes com escalares.
m=[8 1 6; 3 5 7; 4 9 2];

m+100
ans =
108 101

UNESP / Departamento de Cartografia

106

103

105

107

104

109

102

Nas operaes entre matrizes devem ser respeitadas as regras usuais da matemtica
quanto ao nmero de linhas e colunas que duas matrizes devem ter para serem somadas,

3*m

multiplicadas, etc. No entanto existem operaes especiais. Sendo A=[a1 a2 ... an] e B=[b1
b2 ... bn] duas matrizes, ento:

ans =
24

18

15

21

12

27

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


A.*B = [a1b1 a2b2 ... anbn];
A.^B = [a1^b1 a2^b2 ... an^bn];

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

37

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Alguns comandos adicionais para a operao com matrizes:

UNESP / Departamento de Cartografia

3.4. Exerccios
1) Dadas as seguintes matrizes e vetores:

inv
det

trace
cond
rank
eig
svd

Matriz inversa de uma dada matriz


Sintaxe: inv(matriz)
Calcula o determinante (D) de uma matriz bem como o
recproco do nmero de condio (RCOND)
Sintaxe: [D, RCOND]=det(matriz)
Trao de uma matriz
Sintaxe: trace(matriz)
Nmero de condio de uma matriz.
Sintaxe: cond(matriz)
Rank de uma matriz
Sintaxe: rank(matriz)
Permite calcular os autovalores (e respectivos autovetores)
de uma dada matriz. Sintaxe: [v, ]=eig(matriz)
Permite aplicar a uma dada matriz o algoritmo SVD
Singular Value Decomposition onde A = U.S.Vt

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

38

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

39

UNESP / Departamento de Cartografia

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

40

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

4. GRFICOS

Caso

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

usurio

queira

UNESP / Departamento de Cartografia

modificar

interface

de

sada

comando

graphics_toolkit (opo) pode ser usado.


As imagens abaixo mostram o mesmo grfico gerado com as opes fltk e
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
bar
stem
stairs
errorbar
hist
comet

Visualizao de grficos lineares no plano


Grfico de barras
Sequncia discreta
Plotar em degraus
Plotar barra de erros
Plotar histograma
Plotar com trajetria de cometa

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Por exemplo, para plotar os nmeros [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0.14], entre com
o vetor y e execute o comando plot, como mostrado:
>> y = [0.0

0.48

0.84

1.0

0.91

0.6

0.14];

>> plot(y)

43

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Resultado:

44

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

45

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Resultado:

46

UNESP / Departamento de Cartografia

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

Resultado:

UNESP / Departamento de Cartografia

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);

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

-0.2

>> subplot(1,3,2);

-0.4

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

-0.6

>> subplot(1,3,3);

-0.8
-1

>> plot(x,-x.^3,'+r')
0

10

12

14

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

49

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Resultado:

50

UNESP / Departamento de Cartografia

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


TIPO DE LINHA
-

__________

Mais opes: '--', ':', '-.'

TIPO DE PONTO

amarelo

magenta

cian

+++++++++

vermelho

verde

xxxxxxx

^^^^^^^

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

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

51

UNESP / Departamento de Cartografia

CORES

azul

branco

preto

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

52

UNESP / Departamento de Cartografia

Resultado:

4.3. Exerccios
>> 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

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

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

55

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Verificar o resultado do uso dos seguintes comandos:

56

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

57

UNESP / Departamento de Cartografia

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

4.4. Gerao de Grficos Tridimensionais e Isolinhas

slice
cylinder
sphere

UNESP / Departamento de Cartografia

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

Mostrar grfico no espao 3D


Permite visualizar curvas de nvel no plano
Permite visualizar curvas de nvel no espao 3D
Permite a criao de estruturas (2D e 3D) para representao 3D
Permite plotar malhas 3D
Combinao mesh/contour
Plotar superfcie 3D
Combinao do comando surf com contour (permite ver curvas de
nvel)
Plot visualizao volumtrica
Gerar cilindro
Gerar esfera

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

58

matriz z em relao ao plano definindo pelas matrizes x e y. Exemplo de uso:

Estes so alguns comandos para gerar grficos tridimensionais e contornos.


plot3
contour
contour3
meshgrid
mesh
meshc
surf
surfc

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

>> t = -2:0.2:2;
>> [x, y] = meshgrid(t, t);
>> z = x.* exp(-x.^2 - y.^2);
>> mesh(x,y,z)

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

61

UNESP / Departamento de Cartografia

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

62

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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

UNESP / Departamento de Cartografia

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)...
>> colormap(bone)

..(b)

(c)

(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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

63

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

64

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
plano cartesiano xy, com 10 iso-linhas. A figura seguinte mostra o resultado para a

O OCTAVE possui alguns comandos que permitem adicionar informaes em um


grfico, como por exemplo:

superfcie anterior.

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

65

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

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

67

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Na sequncia so mostradas outras possibilidade para a visualizao de mltiplas


funes:

68

UNESP / Departamento de Cartografia

Resultado:

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

69

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

70

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

Diretrio de
trabalho

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


Estes arquivos podem ser criados por alguns aplicativos como Notepad++, Notepad,
Textpad, Sublime Text, etc.

Editor

Uma outra possibilidade para criar e editar estes arquivos por meio do editor do
prprio ambiente de trabalho do OCTAVE. Como pode-se notar na prxima figura, temse 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

Na sequncia so apresentados alguns comandos e declaraes especiais para serem

#Mostrar a funcao y=ax^2 + bx + c no intervalo -5<x<5


clear
aux='s';
while aux=='s',
clc
disp(' ');
disp(' Dada a equao y=ax^2 + bx + c ...'); disp(' ');
a=input('Digite o valor de a = ');
b=input('Digite o valor de b = ');
c=input('Digite o valor de c = ');
x=-5:0.1:5;
y=a*x.^2+b*x+c;
plot(y)
figure(1)
disp(' Acione a tecla Enter para continuar.');
pause
clc
close
disp(' ');
aux=input(' Deseja ver outra curva ? (s/n) ==> ','s');
endwhile
disp('Programa finalizado.');

usados nos arquivos script, por exemplo:


Comando
% ou #
clear
input
pause
clc
figure(n)
disp(...)
close

Funo
Inserir um comentrio no arquivo .m
Apagar todos os dados da memria
Usado para a entrada de dados a partir da janela
de comando
Provoca uma pausa na execuo do arquivo at
que qualquer tecla seja digitada
Limpar a janela de comando
Abrir e mostrar a janela grfica de nmero n
Mostrar no ambiente de trabalho o texto
colocado entre ...
Fechar todas as janelas grficas

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

Exemplo de arquivo script

73

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

6. CONTROLE DE FLUXO

74

UNESP / Departamento de Cartografia

muito comum construes em que conjuntos de laos for so usados,

Os comandos que controlam o fluxo especificam a ordem em que as operaes so

principalmente com matrizes:

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.


Analisando a expresso

endfor
endfor

>> for i = 1:n;


>>
for j = 1:n;
>>
...
>>
endfor
>> endfor

A
B
C=A+B

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

75

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

76

UNESP / Departamento de Cartografia

6.2. Comando while


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

Operadores relacionais:

a = 1; b = 15;

- Inicialmente a condio a<b testada.

while a<b

- Se ela for verdadeira o corpo do lao ser executado

a = a+1
b = b-1
endwhile
disp(fim do loop)

e o procedimento repetido.
- Quando o teste se tornar falso o lao terminar, e a
execuo continuar no comando que segue o lao,

Operadores lgicos

<

Menor do que

&

>

Maior do que

ou

<=

Menor ou igual a

no

>=

Maior ou igual a

==

Igual

~=

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

6.3. Declaraes if, else

UNESP / Departamento de Cartografia

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;
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

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 comandos so similares ao da biblioteca MATLAB.
Para detalhes adicionais sobres os diversos comando sugere-se McANDREW (2004) e
EATON et al (2015).

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

79

UNESP / Departamento de Cartografia

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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

imfinfo

80

UNESP / Departamento de Cartografia

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


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

imagens no OCTAVE:

imread
image
hist
rgb2gray
axis
disp
figure
colormap

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

warning('off');
pkg load image;
nome='lenna.jpg';
DATA=imread(nome);

Faz a leitura de imagens


Permite a visualizao de uma matriz como uma imagem
Calcula o histograma de um conjunto de dados
Converte imagem colorida (RGB) para tons de cinza
Controla a aparncia e a escala dos eixos
Visualizao de um vetor no modo texto
Abre uma nova janela grfica
Permite definir um mapa de cores
Exemplo: colormap(gray(256))
Funo que retorna uma estrutura que contem diversas
informaes sobre determinada imagem
Exemplo de uso: imfinfo(arquivo_imagem)

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

figure;
image(DATA);
xlabel([ 'Imagem: ' nome ]);
disp([ 'Imagem entrada: ' nome ]);
figure;
DATAg=rgb2gray(DATA);
image(DATAg);
colormap(gray(256));
xlabel([ 'Imagem (tom de cinza) ' ]);
disp([ 'Imagem (tom de cinza) : ok' ]);
81

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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

82

UNESP / Departamento de Cartografia

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

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

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

...

...

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

figure;
DATAn=255.-DATAg;
image(DATAn);
colormap(gray(256));
xlabel([ 'Imagem (negativa)' ]);
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');
pkg load image;
nome='lenna.jpg';
DATA=imread(nome);
DATAg=rgb2gray(DATA);

convertida para tons de cinza e a negativa.

50

50

50

100

100

100

150

150

150

200

200

200

250

250

250

300

300

300

350

350

400

400
50

100

150

200

250

300

350

400

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

350

50

Imagem: lenna.jpg

100

150

200

250

300

350

400

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

400
50

Imagem (tom de cinza)

100

150

200

250

300

350

400

Imagem (negativa)

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

85

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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

86

UNESP / Departamento de Cartografia

Alguns comandos adicionais relacionado ao processamento de imagens:

histograma.
imshow
imagesc

Permite a visualizao de uma imagem


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

Histograma
3500

50

3000

100

2500

150
2000

200
1500

250
1000

300

500

350

400
50

100

150

200

250

300

350

400

50

100

150

200

250

300

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

87

UNESP / Departamento de Cartografia

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Leitura / Aplicao de um filtro a uma imagem / Visualizao

88

UNESP / Departamento de Cartografia

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

pkg load image;


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

...
f55=(1/25).*[ 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,f55,'same');
figure;
imagesc(PARCIALb);
colormap(gray(256));
title([ 'Imagem: ' nome ' [Aps filtro mdia 5x5]' ]);

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

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

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

f2da=[
-1
0
1; -2
0
2; -1
0
1 ];
PARCIAL=filter2(f2da,DATA);
Figure;
imshow(uint8(PARCIAL));
title([ 'Imagem: ' nome ' [Apos filtro Sobel (borda
vertical]' ]);

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

100

100

150

150

200

200

250

250

300

300

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:

350

350

400

400
50

100

150 200 250 300

350

400

50

100

150

200

250

300

350

400

...

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

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

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

50
100
150
200
250
300
350
400
50

100

150

200

250

300

350

400

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

91

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

92

UNESP / Departamento de Cartografia

8. IMPORTAO / EXPORTAO DE DADOS


save arql.sai X Y Z binary
Neste tpico so apresentados alguns comandos adicionais relacionados
save arq2.sai X Y Z -ascii

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

save arq3.sai X Y Z -ascii -double


8.1. Importao e Exportao de Dados

salva as variveis X, Y e Z no arquivo binrio


arq1.sai
salva as variveis X., Y e Z no arquivo texto
arq2.sai com 8 casas decimais
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
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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

93

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

94

UNESP / Departamento de Cartografia

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

1
3
3
1
1

polig1 =

1
1
3
3
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

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

UNESP / Departamento de Cartografia

Exemplo:

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
load arq2.sai
load arq3.sai

0.0470 0.9347 0.8310

save arq1 X Y Z
save arq2.sai X Y Z -ascii
save arq3.sai X Y Z -ascii -double

0.6789 0.3835 0.0346


>> y = rand(3,3)

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

y =
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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

>> save arq2.sai x y -ascii

9. CRIAO DE FUNES

>> clear

9.1. Criao de funes

98

UNESP / Departamento de Cartografia

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

>> load arq2.sai

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.

arq2 =
0.2190
0.0470
0.6789
0.0535
0.5297
0.6711

0.6793
0.9347
0.3835
0.0077
0.3834
0.0668

0.5194
0.8310
0.0346
0.4175
0.6868
0.5890

A estrutura geral de uma funo que pode ser criada pelo usurios do OCTAVE a
seguinte:

function [ retorno ] = teste (variveis)


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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

99

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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

100

UNESP / Departamento de Cartografia

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()
M ( ) =

sin() cos() .
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:

F_MATRIZ_ROTACAO Calcula a matriz de rotao


no espao 2D
- Entrada: ngulo em graus
- Retorno: Matriz de rotao 2x2
Autores: Mauricio Galo e Paulo Camargo
UNESP, 2016
alfa=alfa*pi/180;
Mrot=[ cos(alfa)
-sin(alfa)

x '
x
y ' = M ( ) y

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

#
#
#
#
#
#
#

sin(alfa);
cos(alfa)];

endfunction

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

Funo f_aplica_rotacao armazenada no arquivo f_aplica_rotacao.m

UNESP / Departamento de Cartografia

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
- Retorno: Coordenadas rotacionadas do ponto
(x,y)
0
1
1
0
0

Autores: Mauricio Galo e Paulo Camargo


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

Contedo do
arquivo
polig1.dat
0
0
1
1
0

2
3
2
2

Contedo do
arquivo
polig2.dat
2
3
3
2

endfunction

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

103

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Leitura dos dados / Visualizao dos polgonos

104

UNESP / Departamento de Cartografia

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);
x2=polig2(1:lin2,1);
y2=polig2(1:lin2,2);

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

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

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

105

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Resultado da visualizao dos polgonos aps rotao

106

UNESP / Departamento de Cartografia

REFERNCIAS

3
2.5

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 version
3.2.3, July, 2007. 672p.

1.5

EATON, J. W.; BATEMAN, D.; HAUBERG, S.; WEHBRING, R. GNU Octave Edition 4 for
Octave version 4.0.0 Free Your Numbers, March, 2015. 966p.

HANSELMAN, D.; LITTLEFIELD, B. Matlab - Verso do Estudante: guia do usurio


(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

QUARTERONI, A.; SALERI, F.; GERVASIO, P. Scientific Computing with MATLAB and
Octave. Fourth Edition. Text in Computational Science and Engineering. BARTH, T. J.; GRIEBEL,
M.; KEYES, D. E.; NIEMINEN, R. M.; ROOSE, D.; SCHLICK. T. (Eds.). Lausanne: Springer,
2014.

-0.5

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

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, 1993. 35p. Disponvel em http://skomam.vsb.cz/program/primer.pdf. Acesso em
13/Junho/2015.
SIQUEIRA, A. F. de Octave Seus primeiros passos na programao cientfica. So Paulo:
Casa do Cdigo, 2015. 202p.

UNESP / Departamento de Cartografia

ANEXOS

Nesta seo so apresentados alguns exemplos adicionais de comandos e


respectivos resultados, que podem ser teis em algumas aplicaes na visualizao de
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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

110

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

%{
Exemplo de uso de alguns comandos do Octave
Comandos (principais): bar, legend.
Autores: M. Galo e Paulo de O. Camargo
Unesp, Pres. Prudente, 2016
%}

24.7
23.7
21.3
21.9
15.2
13.9

112

UNESP / Departamento de Cartografia

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;
18.0 19.2 20.4 19.3 0;
22.8 21.5 22.1 22.2 0;
21.1 25.0 22.9 22.0 0 ];
B=bar(dados);
legend(B,'2012','2013','2014','2015','2016');
legend('Boxoff');
meses=({'Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set
','Out','Nov','Dez'});
set(gca,'XTickLabel',meses);
ylabel('Temperatura minima mensal [graus C]');

Anexo II

clear
figure;
periodo = 2012:1:2016;
dados = [ 19.1 23.5 23.7
23.5 21.5 23.5
18.5 20.8 23.0
17.0 19.8 19.7
14.0 17.1 12.5
14.3 14.3 14.5

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

24.4;
23.3;
21.3;
27.5;
0;
0;

Obs.: Fonte dos dados: www.ciiagro.sp.gov.br. Os dados referentes ao ms de abril/2016


corresponde coleta de dados dos primeiros 15 dias de abril, uma vez que os dados foram
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
%}

Resultado grfico do script anterior.


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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

115

UNESP / Departamento de Cartografia

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);
S=['PRINCIPAIS COMPRADORES DE MINERIO DE FERRO BRASILEIRO EM
2010. Fonte: IBRAM'];
title(S,'fontsize',11);

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

116

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');
grid

Grfico resultante do script anterior.


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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

117

UNESP / Departamento de Cartografia

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

118

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.
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016

(continua)
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

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


num2str(lambda) ];
xlabel(S);

UNESP / Departamento de Cartografia

Anexo VI
%{
Exemplo de uso de alguns comandos do Octave
Comandos (principais): size, delaunay, triplot, axis.

Grfico resultante
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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

122

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

figure;
plot(xn,yn,'.r');
xlabel('X(m)');
ylabel('Y(m)');

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

figure;
plot3(xn,yn,zn,'.r');
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');

Autores: M. Galo e Paulo de O. Camargo


Unesp, Pres. Prudente, 2016
%}
clear
load terreno.txt
[lin,col]=size(terreno);
x=terreno(1:lin,1);
y=terreno(1:lin,2);
z=terreno(1:lin,3);
xn = x - min(x);
yn = y - min(y);
zn = z;

limX = min(xn):1.:max(xn);
limY = min(yn):1.:max(yn);
[xf,yf] = meshgrid(limX, limY);
zf = griddata(xn, yn, zn, xf, yf);
figure;
plot(xn,yn,'.r');
hold on
contour(zf,50,'-b');
(continua)

(continua)
Mauricio Galo e Paulo de Oliveira Camargo, Presidente Prudente - SP, 2016

124

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

xlabel('X(m)');
ylabel('Y(m)');

UNESP / Departamento de Cartografia

Contedo do arquivo terreno.txt.

figure;
surfc(xf, yf, zf);
title('Superficie topografica');
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
Na sequncia so mostrados o arquivo terreno.txt, usado no script anterior,
bem como os quatro grficos resultantes da execuo deste script.

10605.777
10599.733
10615.293
10634.561
10630.045
10626.659
10646.331
10650.098
10665.250
10664.420
10664.845
10665.840
10673.666
10673.593
10675.106
10671.091
10678.698
10688.459
10691.294
10695.599
10697.511
10687.189
10695.143
10675.229
10687.963
10595.478
10614.218
10642.839
10678.690

14253.405
14226.811
14198.717
14206.868
14231.201
14263.897
14232.702
14268.751
14256.447
14255.853
14255.081
14255.707
14244.882
14246.394
14247.072
14244.626
14242.686
14268.374
14259.813
14275.018
14260.744
14244.902
14239.535
14232.082
14217.071
14287.307
14318.957
14346.278
14326.350

847.374
849.188
843.856
835.203
834.698
834.841
827.488
824.985
818.154
818.118
818.081
818.115
817.800
817.840
817.834
818.551
814.706
821.455
816.981
823.062
815.977
812.722
805.741
816.265
809.833
851.135
850.357
847.213
838.391

10654.248
10677.961
10695.797
10687.212
10702.598
10727.848
10722.865
10757.893
10724.310
10720.952
10702.665
10721.728
10752.754
10719.296
10724.365
10693.065
10734.297
10695.266
10617.750
10621.073
10609.384
10587.327
10598.051
10599.717
10618.061
10615.075
10587.427
10572.092
10652.161

14300.966
14273.010
14296.792
14311.491
14296.371
14302.539
14257.941
14332.396
14329.433
14330.090
14337.463
14311.994
14350.186
14350.783
14348.249
14355.301
14354.692
14380.014
14403.847
14404.658
14441.500
14446.788
14374.378
14372.089
14389.550
14390.768
14423.912
14397.026
14396.553

832.379
821.125
830.147
835.304
825.103
825.620
816.945
825.310
829.970
832.536
837.446
828.226
825.874
829.237
834.469
843.320
830.744
843.335
851.262
851.418
854.433
851.514
853.819
853.823
852.020
851.944
848.785
852.387
853.625

10645.834
10569.665
10566.565
10551.639
10598.039
10586.884
10573.056
10555.576
10558.450
10535.919
10527.406
10555.024
10552.173
10557.990
10560.678
10568.406
10576.697
10523.849
10587.444
10586.427
10579.011
10547.881
10595.544
10598.582
10544.620
10589.274
10587.583
10695.918

14366.175
14349.903
14352.056
14366.817
14338.327
14319.117
14334.192
14312.625
14312.015
14352.970
14327.464
14277.472
14277.784
14241.363
14241.972
14262.295
14305.307
14268.045
14202.788
14199.660
14232.853
14213.814
14177.230
14179.058
14192.465
14162.826
14166.114
14217.893

850.873
855.487
855.569
853.152
855.792
855.908
856.122
853.111
853.120
850.769
849.723
853.647
853.858
854.902
854.754
854.681
855.266
851.384
849.155
848.979
854.422
850.228
844.544
844.836
846.335
842.976
842.864
806.531

# Fim do arquivo
(continua)

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

127

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

UNESP / Departamento de Cartografia

128

UNESP / Departamento de Cartografia

Grficos 3 e 4 resultantes do script anterior.

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

129

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Grficos 1 e 2 resultantes do script anterior.

(continua)

UNESP / Departamento de Cartografia

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

TUTORIAL DO OCTAVE / OCTAVE TUTORIAL

Anexo VIII

130

UNESP / Departamento de Cartografia

%{
Exemplo de uso de alguns comandos do Octave
Comandos (principais): meshgrid, surf, interp2.

[xi,yi] = meshgrid(Lmin:0.5:Lmax);
zi = interp2(x, y, z, xi, yi);
figure;
surf(xi,yi,zi);

Autores: M. Galo e Paulo de O. Camargo


Unesp, Pres. Prudente, 2016
%}

zi1 = interp2(x, y, z, xi, yi,'nearest');


figure;
surf(xi,yi,zi1);

clear
Lmin = -2*pi;
Lmax = 2*pi;
[x,y] = meshgrid(Lmin:Lmax);
z = (1/3)*x.*cos(y/2);

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


figure;
surf(xi,yi,zi2);
zi3 = interp2(x, y, z, xi, yi,'spline');
figure;
surf(xi,yi,zi3);

figure;
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

a)

UNESP / Departamento de Cartografia

b)

Superfcies 3 a 5 resultantes do script


anterior, onde os interpoladores nearest
(a), cubic (b) e spline (c) foram
utilizados.

Superfcies 1 e 3 resultantes do script anterior.

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

Vous aimerez peut-être aussi