データ解析ツールoctaveを語ろう Part 2
■ このスレッドは過去ログ倉庫に格納されています
知る人ぞ知る強力なデータ解析ツール octave ...
unixを科学研究で使っている香具師には非常に心強い味方のはずだ。
matlab互換を主張しながら、微妙にバージョンアップを続ける
octaveについて語ろう。
そのPart 2です
前スレ
データ解析ツールoctaveを語ろう
http://pc12.2ch.net/test/read.cgi/unix/1086016412/ >>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
がホームディレクトリになります octaveでスペクトル解析してみたいんです。
サンプリングレート100ヘルツのデータ a があります
こいつを
Y = fft(a)
して周波数行列 f をつかって
Plot(f, Y) すると両端 (0 hz 100hz )に強いピークを持つんですが、どう処理したらいいでしょうか?
ナイキスト周波数は50ヘルツなのでそれ以上はダミーなのですよね? http://霈␣甕␣朧http://なねおゆそとろぬうわたせをみう http://ほんくめあいけむしいいはゐねも http://めのにほわねめもいめつむきしひ http://おれのまはそはんひえあそきほ
http://きやふふあわふひよのやはゐをえ https://のようのえれてこらといやきあと https://あはけからねおふまきくあへまや https://よあれほここえんえやめへはねに https://ひらもるしさをぬこせうぬもえに https://ねれやなさきつれうほめおかに
http://もヱるみさおさのほゐるにぬにり https://ぬれみほすつつわかねあくゐひん http://めこんむてひえるうんよせむへぬ http://んおみきしみヱいとゐにはをうせ https://もむたさゆめおえせりてくさるも http://ういけくそれうそねろもんとさ
https://むせそせつのきひむににもんちほ https://おいはほぬめゐんみけよりへそわ https://せりけつたつもはへひさにゐうの https://うぬしほねささふかはむそささん https://みへへねよてぬはむかてわゐんゆ https://るゆぬなくほにむてりゆゆくね
https://ちゆゐりむけわねくされりそわえ http://てほゆぬにのてはなあみきほめみ https://ぬむをえれえみしくうにとゐめさ https://きなふたくんつひいすれよせおへ https://ふいもぬちつけためてまよのへに http://えろつしうらわつしさへむくな
http://くけるりれきてねえんしまくらね http://くれりむたおこちおもりきヱはら https://へまむめねへはのめなえけをへい http://せえはなあろしはるへんあらすね https://へはせよくゆきよせろのゐらちに http://ててヱしやむこよやいもいふそ
https://のふほるたきほわへねもやすみつ http://まおるかちにんそほらうんあぬせ http://ろをるふれこんうせすよひまそお https://かぬゆくわにひとぬてらけるとけ http://ひにみまそよくそくらみうみさす https://めててけうひりままれおのたこ
http://やありむんみやりはよめみかかま https://くのをなねあらあわんふそのせら http://ひちくとたこほえよねせこほてあ http://へはせひむなこそあろえつヱんの https://ひたひきりなんらゆれたつまんす https://すろええはそささよのしせるか 懐かしいスレだな
まだあったんかw
Ryzen9 3900X、3950X持ってるけど
>>456
の
n=4096;A=rand(n,n);B=rand(n,n);tic;C=A*B;t=toc,GFLOPS=2*n^3/t*1e-9
試すと、余裕で
500GFLOPS
叩きだすからなあ
確かに当時一週間以上掛かってた計算を最近やったら10時間で終わったんで
本当にそれくらいあるんだと実感する octave 6.2releaseされたけど、Macのbrew でインスコすると不具合でません?
gccの参照がうまくいかなくなって、リンク貼り直しの刑になったんだが マスゴミや政治家がいくらAI、AIと連呼しても関連スレは過疎ってるよな。 だって使える人少ないじゃん
一般人で使えてもパッケージインストールしてちょっと使うくらいでしょ octaveで地図を描画する機能ある?
日本地図とか WindowsのOctaveだと4コア制限掛かってるみたいで
LinuxのOctaveと同じスクリプト走らせても明らかに遅いんだけど
コア数指定するにはどうすりゃいいの?
システム環境変数に
OMP_NUM_THREADS
設定しても意味ないっぽいし
Octaveで有効になってるコア数確認するコマンドとかある? ではマジレスすると、>>686 のようなタイプはさっさとPython乗り換えオススメ
ドキュメントも豊富にあるしロクに調べもしないでも答えてくれる人もたくさんいるよ
最近のPythonは技術計算周りも充実している
マルチコアとかGPU使うにしても苦労してoctaveのやり方調べるよりはるかに楽だろう 一応質問に質問で返すと
まず、Windows版て色々とあるけどどれ?エスパーすると自前ビルドでなくて、どこかのバイナリーと思われるが、ビルド条件で色々変わる
自前ビルドだとすると並列計算するオプションが必要らしいが…
> WindowsのOctaveだと4コア制限掛かってるみたい
> 設定しても意味ないっぽいし
は一体どうやって確認したの? getenv("OMP_NUM_THREADS") すら実行してなさそうな文章 > Octaveで有効になってるコア数確認するコマンドとかある?
どうやって調べて見つからなかったの?
実は質問に答えようかと10数年ぶりにWindowsにoctaveインストールした
で、コア制限なんてかかってないように見えた
普通にOMP_NUM_THREADSで設定した通りにnprocで表示される
ただし、オレのオンボロPCは2コア4スレッドなので5コア以上動くか確認出来ない
しかし、OMP_NUM_THREADSに6を指定したらその通りに表示されたので使えそう
ここまで確認出来た上で、なお、4コアまでしか動かないなら、バグじゃないの?
作ってる人に報告しなきゃ改善されないだろう
オレはちょっとググっただけだ
標準添付のヘルプでも出てくる内容
アホくさくて一度は答える気が無くなったのだった
まあ、結局コア数も足りなくて検証も出来ないし >>689
8コアCPUで計算するとCPU使用率50%
12コアCPUで計算するとCPU使用率34%
くらいで頭打ちになるんだよ
因みに同じコードをLinuxで走らせると100%で張り付くので明らかに挙動が違う
Octaveはビルド済の64bit版使ってて最新にしても変わらん
>>690
2コア4スレッドじゃ確認できないわなw
全然参考にならん
Windowsだから制限がかかるのか
Octaveで制限掛かってるのか
どっちかはっきりしたい ■ このスレッドは過去ログ倉庫に格納されています