データ解析ツールoctaveを語ろう Part 2
■ このスレッドは過去ログ倉庫に格納されています
知る人ぞ知る強力なデータ解析ツール octave ...
unixを科学研究で使っている香具師には非常に心強い味方のはずだ。
matlab互換を主張しながら、微妙にバージョンアップを続ける
octaveについて語ろう。
そのPart 2です
前スレ
データ解析ツールoctaveを語ろう
http://pc12.2ch.net/test/read.cgi/unix/1086016412/ Octave Online
https://octave-online.net/
>> ver
----------------------------------------------------------------------
GNU Octave Version: 4.2.1
GNU Octave License: GNU General Public License
Operating System: Linux 3.10.0-693.11.6.el7.x86_64 #1 SMP Thu Jan 4 01:06:37 UTC 2018 x86_64
---------------------------------------------------------------------- ----------------------------------------------------------------------
Package Name | Version | Installation directory
---------------------+---------+-----------------------
communications | 1.2.1.1 | .../octave/packages/communications-1.2.1.1
control *| 3.0.0 | /usr/local/share/octave/packages/control-3.0.0
data-smoothing *| 1.3.0 | .../share/octave/packages/data-smoothing-1.3.0
divand | 1.1.2 | /usr/local/share/octave/packages/divand-1.1.2
financial *| 0.5.0 | .../local/share/octave/packages/financial-0.5.0
fuzzy-logic-toolkit *| 0.4.5 | .../octave/packages/fuzzy-logic-toolkit-0.4.5
general *| 2.0.0 | /usr/local/share/octave/packages/general-2.0.0
geometry *| 3.0.0 | /usr/local/share/octave/packages/geometry-3.0.0
image *| 2.6.2 | /usr/local/share/octave/packages/image-2.6.2
interval *| 3.1.0 | /usr/local/share/octave/packages/interval-3.1.0
io *| 2.4.8 | /usr/local/share/octave/packages/io-2.4.8
linear-algebra | 2.2.2 | .../share/octave/packages/linear-algebra-2.2.2
ltfat | 2.2.0 | /usr/local/share/octave/packages/ltfat-2.2.0
mapping | 1.2.1 | /usr/local/share/octave/packages/mapping-1.2.1 mechanics | 1.3.1 | .../local/share/octave/packages/mechanics-1.3.1
miscellaneous | 1.2.1 | .../share/octave/packages/miscellaneous-1.2.1
nan | 3.1.4 | /usr/local/share/octave/packages/nan-3.1.4
odepkg *| 0.9.1 | /usr/local/share/octave/packages/odepkg-0.9.1
optim *| 1.5.2 | /usr/local/share/octave/packages/optim-1.5.2
signal *| 1.3.2 | /usr/local/share/octave/packages/signal-1.3.2
statistics | 1.3.0 | .../share/octave/packages/statistics-1.3.0
stk | 2.5.0 | /usr/local/share/octave/packages/stk-2.5.0
struct *| 1.0.14 | /usr/local/share/octave/packages/struct-1.0.14
symbolic *| 2.6.0 | /usr/local/share/octave/packages/symbolic-2.6.0
tsa | 4.4.5 | /usr/local/share/octave/packages/tsa-4.4.5
Did you know you can use Octave Online in your class?
Open a support ticket to inquire about how we can set you up as an instructor.
dismiss
》
ブラウザさえあれば使えるので環境に依存せず使えるのがいい。 >>577
どゆこと?
octave-cli しか使ってない俺からしたら謎の新機能に聞こえるんだが >>579
組み込まれているoctave-forge パッケージのリストだけど ネットでのサービスがあるとして大切なデータをそこに出しちゃうってありえるの >>580 やった。m(_ _)m
>>581 確かにその点はおっしゃるとおり。
差し障りのない範囲で、手軽に使えるのは大きいよ。 octaveのメジャーうぷまだかな?
debian はしゃーないとして、brew したい ソースだけですが、5.0のRC1(5.0.90)がでました。
なぜか、次のメジャーリリースは5.1.0
のようです。
http://octave.1599824.n4.nabble.com/RC1-Candidate-td4691064.html
Ubuntu上で無事ビルドできました。 >>586
windowsバイナリもアップされたようです。 >>586
ホンマ?ホムペみても4.4のままなんやが >>587
直接URLを書かなかったのですまない。RCは正式版じゃないから違うところに
アップされる。
https://alpha.gnu.org/gnu/octave/
にある。
このwindows バイナリはリンクフラグのミスで
vc 2010 redistributable x64
https://www.microsoft.com/ja-jp/download/details.aspx?id=14632
が必要。 次のバージョンナンパーが5.1。バージョンナンバーのつけ方、変わったのかな? 公式にはアナウンスされていないようですが,RC2である5.0.91のソースが
https://alpha.gnu.org/gnu/octave/
にアップされています。
これからビルドしてみます。
Windowsバイナリのそのうちアップされるでしょう。 >>591
windows バイナリもアップされました。 >>593
5.0,91のwindowsバイナリはVC 2010のランタイムライブラリの誤リンクが解消されてぃます。 octaveはpkg installなどでUnixシェル環境が必要なので,これまではmsysが使われて きたのですが,msys2に代わりました。フォルダの構造がだいぶ変わっています。 >>594, 595
すいませんwindows版の話です。 octaveをwslのubunutu18.04にいれたら,qt グラフィックスがうまく描画できない問題は
xseverを-nowglで立ち上げたら問題がなくなった。 wslをだいぶ使い込んだ。Octaveはやはりlinuxで使った方がいいので,
windowsでもwslを使ってlinux版を使い始めた。
ただし,distroにバンドルされているのは大抵バージョン落ち。
いままでは自力ビルドしかなかったが
flatpakという仕組みができた。
いかんせんこれを使ったoctaveのインストールがwsl上のUbuntuでは実現していない。
私個人はoctaveのlinux上でのビルドはずっとやっているから問題がないが,
linuxユーザーでも最近はビルドしない人も多くなっているので悩ましいなあ。 >>598
4.4.1 上手くmake通る? FreeBSDだけれど、結局GUI関係諦めて
./configure \
'--prefix=/usr/home/**********'\
'--with-blas=-L/usr/local/lib -lcblas -lf77blas -lptcblas -lptf77blas'\
'--with-lapack=-lalapack -lptcblas'\
--enable-shared\
--disable-java\
--disable-jit\
--disable-openmp\
--without-qt\
--without-osmesa\
--enable-docs\
--x-libraries=/usr/local/lib\
--x-includes=/usr/local/include\
--localstatedir=/var\
--mandir=/usr/local/man\
--disable-silent-rules\
--infodir=/usr/local/share/info/\
--build=amd64-portbld-freebsd11.2
までオプション落としてようやくmake checkが通る程度の有様(cli でないと
coredumpする。デバッガで起動したらlibcxxrt.soの参照アドレス不整合が
原因らしい)だけれど。
(Qt5-KDE5関連が今丁度端境期っていうのもあるかもしれないし、未だmake
時に使う環境変数指定が不足しているのかもしれないけれど)
ちなみにうちは他への影響が大きく出来合いのpkgは使いたくない為、一々source
からmakeするようにしている。 ubuntu 18.04だけど問題ない。最近の5.0.91でもビルドできる。 >>600
回答有難う。Linuxは一寸苦手だけれど試してみます。 >>601
Linuxではflatpakを使えばdistro関係なく最新版をインストールできる。
https://flathub.org/apps/details/org.octave.Octave
開発者ビルドしたいときかな自分でビルドするときは >うちは他への影響が大きく出来合いのpkgは使いたくない為、一々source
からmakeするようにしている。
を見落としとった。m(__)m。
https://www40.atwiki.jp/gnuoctavejp/pages/13.html
Linuxでのインストール
でubuntu状のビルド情報を書いた。
ご参考まで >>602
(誤)開発者ビルドしたいときかな自分でビルドするときは
(正)開発版ビルドしたいときかな自分でビルドするときは
さらに,wsl ubuntuではflatpakが私の力量では使えない。
Ubuntu上のビルドはさほど苦にならないので問題ないが。 octave 4.4.0 使ってるんだけど,ssh とかでリモートで octave-cli で絵を描かせると設定したfontsizeや fonttype, ラインスタイルが反映されないないんだけどこれは仕方ない? >>605
使っている graphics_toolkit は?
(プロンプトで graphics_toolkit と打てば出てくる。)
print コマンドと使ったいると思うが 出力デバイスは (ファイル形式)?
qtとかfltkは,gl2ps とライブラリを使ってファイルを psotsrcipt に変換してから, さらに,ghostscriptやpstoeditで他のファイル形式に変換する。
この時にフォント指定とかが消えることが多い。
graphics_toolkit を gnuplot にすれば余計な変換がない。
gnuplot はインストールしてあるよね? >>606
graphics_toolkit と打つと
gnuplot と返された。
ちなみにgnuplotのバージョンは 5.0です。
ちなみにリモート先のOSは debian 4.9 です >>606
最後まで答えてなかった、ごめん。
>print コマンドと使ったいると思うが 出力デバイスは (ファイル形式)?
>
print コマンドではなく、saveas コマンドを使ってます。ファイル形式は pdf です saveas は使ってことないなあ。
とりあえず、print コマンド 使ってみて。
あとファイル形式はなに?
gnuplotでも、ファイル形式によっては単純にpngしてしまうとpostscriptベースになる。
gnuplot だったら
Cairoベースを使うのがよい。
pngcairoとかpdfcairoとか。
これは、多分printコマンドつかないと指定できない。 ごめんpdfだね。pdfcairoを強制するにはprintコマンド使って。
ヘルプかマニュアル読んでね。 個人的に決めのグラフ作成にoctaveを使ったことがない。gnuplot のgraphics tookit使うならoctaveにデータはきださせてgnuplotでかいたほうがよっぽどいい。
octaveからバッチ的につかいたいならデータ泣き出せて,systemコマンドでgnuplotをバッチモードでグラフを作ったほうが質の高いグラフが作成できる。
まあ、私最近
pythonにのりかえたので、あまりアドバイスできんが。 unix使ってるなら、1つのソフトでなんとかしようとするより、ツールを組み合わせて使うもんだと思っている。
gnuplotの機能をoctaveからではフルにつかかえない。正直octaveはグラフをきれいにつくるためのソフトではないと私は認識してる。 >>611
ググってみますありがとうございます。
ちなみに今気がついたのですが、debian母艦で graphics_toolkit すると fltk で、リモート先からgraphics_toolkit すると gnuplot でした。
謎です sshで接続しているのなら、x11 forwarding してクライアント側で x server たちあげて DISPLAY 環境変数を適切に設定しなければそうなります。
そういう設定をなさっていますか? >>615
>sshで接続しているのなら、x11 forwarding してクライアント側で x server たちあげて DISPLAY 環境変数を適切に設定しなければそうなります。
>そういう設定をなさっていますか?
いえ、私は ssh でログインした後,コマンドラインで図を作成したものを保存する,という作業を想定してます.
できた図はDropboxで同期させて確認している,と言った感じです。
全てコマンドラインで作業してます。
なのでX のフォーワーディング等は設定してません >>616
了解です。fltkやqtはグラフィックスがないとつかえません。その場合は自動的にgnuplotになります。osmsaでなんとかなるかもしれないので環境がある場所でテストしてみます。 >>617
できないね。gnuplotでお使いください。 >>614
ssh接続でやってみた
x=0:10;
plot (x, x.^2);
set(gca, "linewidth", 4, "fontsize", 24)
print -dpdfcairo tmp.pdf
fontsizeやlinewidthも反映しました。 GUIのUIの日本語の翻訳をやっています。
今,pythonに移行中なので,正直やっつけ仕事です。
翻訳のおかしい点があれば,ここで書いてください。
暇があれば,パッチを提出します。 改善点qtやfltkのgraphics toolkitでのプロットの改善。print書き出しの改善。
MATLAB互換の改善。
でしょうか。
5にあげる必要あるのかといわれればそうなのですが,バーナンバーポリシーを
変更したらしいのでよくわかりません。 >>622
GUIにvariable Browser が搭載されました。 >>623
「変数ブラウザ」と翻訳していますが,正しいでしょうか? >>626
windowsが一番早かったが、linuxもflatpakが対応して自分でビルドしなくても最新版が早く使える。結果、macが一番バージョンアップが遅くなった。 octave 4.4 系を使用してます。
x軸を上下2つを使って xtick の値をある倍数だけ片方の軸のみ変えることってできますか?
例えば
# 下のx軸
ax1 = [1, 2, 3, 4];
# 上のx軸は上の値の2倍に変換
ax2 = [2, 4, 6, 8]; >>629
> On gnuplot, one can make a plot which has two different ranges (upper and lower) by
> x2range ...
>
> How can I do on octave?
You can create a second axes object and set its limits however you want.
For example
x = 0:99;
y = rand (1, 100);
hax = [axes, axes];
plot (hax(2), x, y);
set (hax(1), "xaxislocation", "top", "xlim", [0, 5]);
--
mike >>628 >>630
で,これと xtick プロパティをセットすればいいんじゃないかな。
set (hax(1), "xaxislocation", "top", "xlim", [0, 5], "xtick", [0:0.5:5]); octave で データ点が多い(100000点)ようなものを plot させようとすると
GL2PS info: OpenGL feedback buffer overflow
というエラー出るんだけどなんとかならんものか。 >>634
そういうことは、本家で聞くことをおすずめする。 >>634
5.1.0 w64-64 windows:
>> x=linspace(0,1,100000);
>> plot(x);
>> print -dpng test.png
普通にできるが? >>636
もしかしてGPU性能が低いからかな。
これGPU関係するよね >>637
5.1.0 を使っている?OpenGL周りの内部ルーチンは4.4系とかなりそうだ。
私のGPUはそれ程でもない,Sandy Brigde世代のCore i5 の
Intel Graphicsだからな。
graphics_toolkit をgnuplotにしてみたら,描画は遅くなるがOpenGL使わないので
問題はなくなるだろう。
>> graphics_toolkit gnuplot
>> x=linspace(0,1,100000);
>> plot(x);
>> print -dpngcairo test.png
また,OpenGL のgraphics_toolkitは描画は速いが(特に3D),単精度実数だから
大きなオフセットがあるときの微小変化のグラフには不向きなので
その場合はgnuplotを使わざるを得ないしね。
OpenGL graphicsとgnuplot graphicsは一長一短があるので
上手く使い分けて。 >>638
失敬
OpenGL周りの内部ルーチンは4.4系とかなりそうだ。
ー>
OpenGL周りの内部ルーチンは4.4系からかなり改善されたかそうだ。 >>638-639
レスありがとうございます。
ictave は 4.0.3 を lnux で使用中です.
ソースから 4.4 に上げたら描画の挙動(?)が4.0.3と変わってしまって、また4.0.3 に出戻りさせた。
例えば
plot(x, - -k), で破線書かせてみると、破線の間隔が妙に幅を持って出力されたりとか色々と変な感じになったので.
こうなったら 5.1 系に上げてしまおうか >>640
linux なら今は flatpak を使うと,ビルドしないでも新バージョンが使える。
https://www40.atwiki.jp/gnuoctavejp/pages/13.html
で,Linux でのインストールで Ubuntu でのインストールを載せてる。
他のディストロでも使えるだろう。 >>595
そのせいでWindowsのユーザーディレクトリから下にいけない >>641
ほんと?
cd 'c:¥'
で問題ないが? いじってみたが、どこでもいけるんだが。windows版5.1.0だが。 >>641
亀レスで申し訳ありません。
無事に 5.1 に上げれました。
気になるのはやはり、図の見た目が変わってしまうことです。仕方ないと諦めるしかないですかねぇ >>647
私の場合、少し前までは仕上げはgnuplotで作っていたので、気にしてなかった。
最近はpython屋になりつつあるので、さらに気にしていない。pythonのmatplotlibは素晴らしいから。 中括弧のセルの連結方法について質問させて下さい。
数が少ない場合だと下記のようにセルを結合するのは簡単ですが,
[a{i,1};a{i,2}]
100 個や 200個セルがある場合, 手書きで結合するには少々しんどいのですが
なにかいい方法ありますでしょうか? 手で書かなきゃいいじゃん。好きなツールで自動生成すればいい。 懐かしいな、octave。
MATLAB買う金なかったからよく使ってたな。
今じゃPythonがあるからいらないけどな。 >>657
Rも使ってるぞ。
スクレイピングからデータの処理はPython。
機械学習はRでやってる。 私もpythonに移行した。言語仕様がいいのとmatplotlibが質の高いグラフを提供してくれるので。
ただし、行列計算機としてはoctaveを使う。こっちのほうが手間少ないから。 >>659
octave ゲキ重じゃない?
まぁPythonはPythonで遅いわけだが Octave version 5.2.0がもうすぐらしいです
https://octave.1599824.n4.nabble.com/uploading-and-tagging-version-5-2-0-td4695448.html
Friday (2020-01-31) is coming for which the 5.2.0 release is scheduled. Ubuntuの次期LTSまでに6.1を間に合わせて入れたいという話もある みなさんご存知だとは思いますが
5.1.0の
C:\Octave\Octave-5.1.0.0
にある
cmdshell.bat
をダブルクリックするとshellが立ち上がり
g++やgfortranでコンパイルができます
mkoctfileも作れます
ほとんどのcygwin or linuxのコマンドが使えます
また cmdshell.bat の中の
Rem set HOME to 8.3 format
for %%I in ("%HOME%") do set HOME=%%~sI
の後ろに
set HOME=home/hoge
と入れれば
C:\Octave\Octave-5.1.0.0\home\hoge
がホームディレクトリになります ■ このスレッドは過去ログ倉庫に格納されています