Fórum Ubuntu Linux - PT

Suporte Técnico => Programação e Scripts => Tópico iniciado por: rudregues em 26 de Outubro de 2012, 22:06

Título: octave é incapaz de plotar veotres muito grandes?[Resolvido]
Enviado por: rudregues em 26 de Outubro de 2012, 22:06
Pessoal, a plotagem de vetores normais funciona perfeitamente. Por exemplo:

Crio um pequeno vetor:
x=[1 9 87 78 6 4 8 476 67 4554 7 5];
Mando plotar:
plot(x);
Ok! Ele plota.

Agora, eu carrego uma variável de uma arquivo .mat grande(220MB), com dimensão 11520000x7 e mando plotar:
plot(x(1:11520000,1:7));
Ele não plota e usa indefinidamente memória, chegando até 7,8GB de RAM consumido(é o máximo de RAM do meu pc), então dá vários erros, incluindo este por último:
Código: [Selecionar]
warning: broken pipe -- some output may be lost
Uso o octave3.2 no ubuntu 12.04.
Obs.: tanto no matlab do windows, quanto no matlab do ubuntu, ele plota sem passar muito dos 4,5GB de RAM, mesmo que demore.

Será um bug?!

   [ ]'s
Título: Re: octave é incapaz de plotar veotres muito grandes?
Enviado por: rudregues em 26 de Outubro de 2012, 22:20
update:
Fiz outro teste aqui, mandei plotar esse vetor num intervalo menor, de 5000000x7 ao invés do total, que é 11520000x7, pouco mais que o dobro.
plot(x(1:5000000,:));
Ele plotou, apesar de demorar bastante, mas com o sistema consumindo 6,5GB no total.

Comparando com o matlab, ele só foi capaz de plotar um gráfico com pouco menos da metade dos dados do total, o matlab plota o total. E mesmo plotando um número menor de dados, ele demora bem mais que o matlab para plotar e gasta bem mais memória RAM pra isso.

Alguém tem alguma sugestão?
Título: Re: octave é incapaz de plotar veotres muito grandes?
Enviado por: Sergio Benjamim em 26 de Outubro de 2012, 22:36
Já tentou usar uma versão atualizada? Instale a versão 3.6.3, por meio de PPA:

GNU Octave PPA - Mike Miller (https://launchpad.net/~mtmiller/+archive/octave)

Se precisar de toolbox, como Control, instale diretamente pelo GNU Octave, se não me engano é package install -forge nomedatoolbox (tem que ter entrado no GNU Octave como sudo primeiro, e precisa ter instalado o octave-pkg-dev).

Ao instalar essa versão mais recente, se o problema persistir, reporte como bug, em http://savannah.gnu.org/bugs/?group=octave (http://savannah.gnu.org/bugs/?group=octave)
Título: Re: octave é incapaz de plotar veotres muito grandes?
Enviado por: rudregues em 27 de Outubro de 2012, 00:04
Ter instalado uma versão mais recente diminuiu um pouco o problema, mas não eliminou.
Reportei no site que você passou:
https://savannah.gnu.org/bugs/?37636 -> tá aqui o "bug"

 Obrigado pela ajuda e vamos torcer pra que isso seja resolvido logo, octave é muito bom! :-)

  [ ]'s
Título: Re: octave é incapaz de plotar veotres muito grandes?
Enviado por: Sergio Benjamim em 27 de Outubro de 2012, 03:17
Ter instalado uma versão mais recente diminuiu um pouco o problema, mas não eliminou.
Reportei no site que você passou:
https://savannah.gnu.org/bugs/?37636 -> tá aqui o "bug"

 Obrigado pela ajuda e vamos torcer pra que isso seja resolvido logo, octave é muito bom! :-)

  [ ]'s

O pessoal do GNU Octave é bem rápido para responder, esses dias reportei um erro lá, da toolbox Control, e me responderam rápido, e me deram um toque que lá não é o lugar apropriado para reportar problemas de toolbox, mas o Jordi (acho q eh o nome dele) foi muito solicito e mandou para a mailing list o meu problema. Preciso me inscrever nessa mailing list de desenvolvimento para acompanhar o problema.

Acho q a gente podia trocar umas figurinhas a respeito, utilizo muito o GNU Octave em conjunto com o Scilab (mais exatamente o Xcos) no meu curso de Engenharia Elétrica, principalmente para a aula de Controle Linear e Introdução à Processamento de Imagens.

E sim, o Octave é muito bom mesmo! Pena que minha faculdade só liga para soft proprietários. Para o pessoal aqui não existe vida além Matlab. Parece que gostam de gastar dinheiro à toa.
Título: Re: octave é incapaz de plotar veotres muito grandes?[Resolvido]
Enviado por: rudregues em 27 de Outubro de 2012, 19:20
São rápidos mesmo, acabo de resolver o problema utilizando o fltk para plotar (agradecimentos ao usuário Mike Miller). Pesquisei sobre esse fltk e parece que recentemente ele está sendo integrado ao octave, de modo a ter melhor compatibilidade com o matlab. Ele foi integrado ao octave a partir de uma versão 3.6.x do octave, mas como programa beta (ou algo do tipo). A idéia é que o fltk seja o padrão para plotagem no octave daqui a algum tempo.

Pra ativá-lo, antes da plotagem utilizei o comando no octave:
Código: [Selecionar]
octave:3> graphics_toolkit fltk
Cada vez que inicia uma sessão no octave, o comando precisa ser utilizado novamente, mas perguntei lá se tem algum jeito de deixá-lo por padrão. Se tiver posto aqui pra galera. Tive a impressão de que o octave plotou um pouco mais rápido com o fltk do que a o próprio matlab plotou no windows/ubuntu. Também comparei o uso de RAM no tópico do bug bem aqui https://savannah.gnu.org/bugs/index.php?37636
Uma coisa importante a observar é que com o fltk o suporte de dados é de 10^38 por enquanto (espero que aumente) o gnuplot tem limite de 10^308 dados de plotagem. Ainda bem que ainda to longe dessa quantidade hehehe

O Scilab tive problemas logo no primeiro uso (semana passada), mas também tive no octave. Por enquanto não tenho planos para aprender o Scilab, mas se eu for pra elétrica também vou precisar da Xcos né, pois o octave num tem nada semelhante. Minha facul, quanto à isso, num tenho muito a reclamar. Sempre que possível, dão preferência ao Linux e software livre.

  [ ]'s



Título: Re: octave é incapaz de plotar veotres muito grandes?[Resolvido]
Enviado por: Sergio Benjamim em 28 de Outubro de 2012, 12:12
Eu já conhecia esse fltk, mas não me dei muito bem com ele, o GNU Octave responde devagar quando utilizo ele. Prefiro o Gnuplot por enquanto mesmo, pelo que estou vendo vai demorar para esse fltk ficar estável.

Você conhece o manual/tutorial oficial do GNU Octave?

GNU Octave: Free Your Numbers (http://www.gnu.org/software/octave/octave.pdf)