データ解析ツールoctaveを語ろう Part 2
■ このスレッドは過去ログ倉庫に格納されています
知る人ぞ知る強力なデータ解析ツール octave ...
unixを科学研究で使っている香具師には非常に心強い味方のはずだ。
matlab互換を主張しながら、微妙にバージョンアップを続ける
octaveについて語ろう。
そのPart 2です
前スレ
データ解析ツールoctaveを語ろう
http://pc12.2ch.net/test/read.cgi/unix/1086016412/ >>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で制限掛かってるのか
どっちかはっきりしたい >12コアCPUで計算するとCPU使用率34%
34%なわけないw
20数%で頭打ちになる
2コアで粋ってる奴の意見はどうでもいい
8コア以上でやってる奴の意見希望 理由は明白な気がするがおれ1コアだから黙っておくよ。
粋がるなって怒られるからね。 コンピュータの基本が分かってない人は2コアなら1/2、4コアなら1/4、
8コアなら1/8の時間で終わると思ってるからね。私は2コアだから彼にはアドバイスしませんけどね^^ ソースもハードも自分が持ってて自分で原因を調べようとせず、
まぁスキルがないからだとは思うが、なぜ上から目線の態度で他人の意見を聞こうとするのか。 雑魚どもがピーチクパーチク囀っとるなw
Linuxだと100%張り付くと書いてるのに何訳の分からねえ事ほざいてんだよ
8コア未満の役立たずどもは
おい、脳無しども有益な情報の一つでも出してみろよw
高パフォーマンスにしてプロセス優先度高くしても50%行けばいい方か
Windowsだめだなw 全く自分でデバッグもできないとか低レベルすぎてツッコミどころ満載^^
まぁそんなの技術者には当たり前だろというよくある話だが態度が悪いんで何も教えてあげない^^ UNIX板は大学デビューが多いからITスキルは低いものだ。大半がアセンブラ分からない、禄にコード書けない読めない。
しかもCからがメインだから機械語を全く理解してないからCのコード見てもどこがボトルネックか分からない。
逆にWindows板はCP/M、DOS、Windowsの流れの人が多いから下から上まで把握してる。
>高パフォーマンスにしてプロセス優先度高くして
というかWindowsド素人やん。なぜWindowsのほうがサクサク動くのか全然分かってないね。 教えてあげないんじゃなくて
自分でも分からねえんだろ?ん?w
有益な情報すら持ってない雑魚は黙ってりゃいいのに
恥晒すために何でしつこく書き込んでくるかなあw あと、御託は良いからさ
態度で示してくんない?
そんだけ偉そうに語れるんだから
8コアでも16コアでも良いけどWindowsで
octaveスクリプト実行してタスクマネージャーで
80〜100パーで張り付いてるスクショでも
出して見せろや?
簡単に出来んだろ?ん? 教えるのは吝かではないがおまえの態度が気に食わない。 問題の出るスクリプトも出さすスクショ出せとかかなり頭が弱くないか。
ここはタコにもやさしい犬板じゃないからな。
ググレカス 偉そうな事言っておいて
スクショの一枚も出せない雑魚しかいねえのかよw
お前らには失望した
お前らなんだかんだ結局言って出来ないんだろ?ん? コア分けたら100%使わないというFAQ並の話にブチ切れしてないで少しはググったらどうだ。
Windowsがなぜ世界市場トップなのか。世界最強デバッガが用意されてるからだよ?
使わない手はないのになぜ使わない? きみのそのシワのない脳味噌に少しでもシワを増やし給え。
そのスクリプトや環境を公開しない時点で自分で原因を探るしかないだろう。ほんとキミは馬鹿だな。 差分法、B-spline法、スペクトル法で
数値微分と数値積分ゴリゴリやってる
五千行くらいのスプリクトだけど
お前理解できんの?
出来るんだったら上げてやってもいいけど
そういうのもあるから一般論で出来るか出来ねーのか
聞いてんだよ
分かったか、間抜けw >>706
学部四年生程度のイキり腐ったガキだな。
しかもoctaveで数値計算してるから関数は知ってても、その中身についてはよくわかってない可能性もある。
数値計算するならFortran使えクソガキ 理解できないからって決めつけて罵倒とか本当に
しょうがねえ使えねえ奴だな
別に学生じゃなくても実装くらいできんだろw
B-splineとかde Boorがresearchgateで自ら掲載してる
から読んでみろよ?ん?
顔真っ赤にしてる暇があったら
早くスクショの一つでも上げて見せろや無能w 休みのネタに期待したのに結局問題となるスクリプトコードとどの実行処理系かは言わないのかよ。
今年のクリスマスは盛り下がりまくりだな!!! このスレは数学屋はくるがコンピュータ科学には疎い。しかしこの板はUNIX板でコンピュータ科学には強い。
この初学者君が悩んでるのは数学ではなくコンピュータ科学だ。キミがいかに頓珍漢なマウンティングをしてるか分かってほしい。
IT音痴君にありがちな分散処理したら速くなるとかコンピュータが一発でデジタル計算できる魔法の機械だとでも思ってるのだろう。
だが違う。コンピュータ屋はCPUとてアナログ回路として見る。そんなのIntelの論文見れば明らかだ。アナログの話ばっかりだ。
コアを分ければ距離が出き、配線が伸び、抵抗が増え、信号が遅れる。コンピュータ屋にとっては光の速度は既に激遅なのだ。
待ち時間が増えるのだ。コアが待機して動かない? だからそんなの当たり前だ。ここまで分かればじゃあどう最適化すれば答えは見えてくるだろう。
まずキミは自分が井の中の蛙だと知り、態度を改めたまえ。 珍しくスレ伸びてると思ったらヤレヤレ
皆さん良いお年(落とし)を 物理学と数学は両輪で互いに進んで科学は発展していくみたいな話があるが、
現代は、物理屋は数学を道具として利用するが、数学屋は物理を道具として見てないというお話でしたとさ。 馬鹿専用のiOSでは馬鹿が勘違いして文句言わないように
CPU使用率やメモリ使用率を見せないようにした。 過疎ってるね。ほれ。
GNU Octave 7.1.0 Released ? Apr 6, 2022 >>688
python使ってみたけどさあ
行列演算の実装が全然直観的じゃねえじゃん
行列計算メインで使ってるなら乗り換える意味ないよw
あと、秋田から答え出るまで放置してたけどアホが吠えてただけとか、どんだけだよw GNU Octave 7.2.0 Released ? Jul 28, 2022 >>715 pythonのリストの実装に線形代数計算ライブラリを突っ込んだという感じで行列計算が
線形代数の記法とあってないのは事実。matplotlibを使いたいがら我慢して使っているところがある。 NvidiaあたりがOctaveにWindows用にNvblasかCublasを提供しないかな Octave は GNU Octave というように GPL V3 だからどうなんでしょう。 Python, RはGPUに対応していて
Pythonは知らんがRはGNUプロジェクト
S言語をGPUプロジェクトでフリー化したのがR
Rみたいな頭のおかしい言語の参考書が
本屋であふれかえっているのは
経済や生物や医学などの無駄に統計を取っている統計の使い方だけ知っている集団が
「P値と有意水準が簡単に計算できないとね!」
とSを使っていたから。
RでGPU使って機械学習というのもPython並に普通
MATLABはGPUに対応しているが
OctaveやScilabは全然対応してない
MATLABやOctaveユーザーから見るとPythonというかnumpyはクソなので
OctaveをGPU対応にしてほしい。Octaveのユーザーコミュニティだけでは難しい NVIDIAがGPUのLinux向けカーネルモジュールをオープンソース化、すでにダウンロード可能に
https://gigazine.net/news/20220513-nvidia-open-source-gpu-kernel-modules/
ってのがありました。
GPL2です。
Linux向けなら何とかなるかも。 >>720
ScilabはGPGPU用の関数整備してなかったっけ? >ScilabはGPGPU用の関数整備してなかったっけ?
調べました。してるようです。
Octaveの方ですがoclというoctave-forge package がありそれでGPUを使えるようです。
Windowsバイナリにはocl packageは実装されていません。
おそらくlinuxじゃないと動かないのでしょう。おそらくですが。
ちなみに最後の更新は2021-12-07です。
GPU Linear algebra extensions for GNU/Octave
って論文もあります。
https://iopscience.iop.org/article/10.1088/1742-6596/368/1/012062/pdf モジュールをどうやって入れるかでいつも迷う
ディストリビューションが用意するモジュールで入れるとなんかいまいち依存問題出たり ■ このスレッドは過去ログ倉庫に格納されています