[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 11:17 / Filesize : 345 KB / Number-of Response : 955
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

データ解析ツールoctaveを語ろう



1 名前:名無しさん@お腹いっぱい。 [04/06/01 00:13]
知る人ぞ知る強力なデータ解析ツール octave ...

unixを科学研究で使っている香具師には非常に心強い味方のはずだ。

matlab互換を主張しながら、微妙にバージョンアップを続ける
octaveについて語ろう。



525 名前:octave for windowsメモの筆者 [2008/05/18(日) 15:33:25 ]
>>524
Cygwin版 2.1.73でoregonatorが遅いのは,知る人ぞ知るgcc-sllj問題です。
これによってoctaveインタープリターの速度が著しく低下するため,
関数値の計算に時間がかかり遅さが目立ちます。
同じ理由でfor ループも極端に遅いです。
行列計算自体はそれほど変わりませんよ。

私は,gcc自体を--disable-sjlj-exeption
でビルドしなおしそれでOctave3.0.0を構築し,配布しています。
MSVC版には及びませが,oregonatorは2秒台は出ると思います。

cygwin版v3のメリットは,parallel,multicore, engine, pdbなどMSVC版では
決してサポートされないforge-packageが使えることです。
また,gnuplotをcvs版にしていますから,マウスズームが使えることです。
ただし,逆にjhandleは使えません。


私は,gnuplotをcygwin上でgcc-4.3.0(このgccは自分でビルドしました。)を使い,もっとも過激な最適化を行って
います。XmingというCygwinを使わないXサーバーを使うとはっきり言って
wgnuplotより高速です。したがって,gcc-4を使えれば今より速いoctaveが
作成できます。

残念ながらgcc-4でのOctaveのビルドはプログラムが複雑なため成功していません。
ですが,cygwinメンバー自体は,gcc-4を公式リリースでは
遅いgcc-sjljを捨てる覚悟でいます。
しかし,backwardの互換性の問題でまだ,進んでいないのが現状のようです。
cygwinのページに予告されているcygwin1.7が出るタイミングだと
読んでいます。これがでれば,gcc-sjlj問題が解決され,
cygwinの公式リリースのoctave-3.0.xがリリースされると思います。



526 名前:octave for windowsメモの筆者 [2008/05/18(日) 15:34:37 ]
>>525 改行多すぎのためここできりました

話は変わりますが,Ogerogonatorの試験はmingw版はMSVCと遜色ありません。
gcc-4の威力はcygwinのgnuplotのビルドでわかっていますので
mingwのgcc-4が使えればMSVCに勝てると思います。
mingwのgcc-4はcandidate ではありますが,公式リリースなので
msys+mingw+GnuWin32+GTKでビルドできると思います。
だれかやってくれないかなーと思っています。

でも,正直いってcygwinとmingw両方みるのはつらいです。
mingwは早くBenjaminさんが登場してくれーとおもっています。
(私はcygwin派なので,mingwは本当はあまり....)


527 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/19(月) 07:17:32 ]
なるほど。個人的にはJhandleが気にいってますので、Mingw版でJhandle使えればなあという所です。
もっと理想ではSciLABのグラフィックエンジンの方がいいですけれど。
ATLASを使った最適化もここを見ると効果がありそうですが、大変そうです。
ttp://www.inaba-lab.org/modules/bwiki/index.php?Octave%B4%D8%B7%B8

528 名前:octave for windowsメモの筆者 [2008/05/19(月) 11:33:57 ]
>>526
MSVC版でIntel SSE2をつかってらっしゃるんでしょう?
たぶんATLASのblasをつかっていますよ。
ターゲットが違うCPUでもそれなりに効果があるんだとMichaelさん
がいってましたから。たぶんMichaelさんのコンピュータでATLASを
作成されています。
私は面倒なので普通のblasでGeneric buildですが,
それでカリカリの最適化をかけています。
もちろんATLASにはかないませんが,Ver. 3でもカリカリの最適化がとおれば
g77の方がMSVC+f2cよりバイナリかなり速いんで面倒なのでATLAS使ってません。
AMDの人のためです。

529 名前:octave for windowsメモの筆者 [2008/05/19(月) 11:44:37 ]
あっ間違えた上のは >>527でした。
続きです。
mingwでもJava+Jhandleは理論上構築できるはずです。
Sun Javaが必要で自分が使わないので構築してません。
(私はcygwin+gnuplot派なので)

cygwinはSun Java自体をcygwin用にビルドする必要があり,
事実上不可能です。gcjでやれるようにしてくれるといいんですが。

Octaveも3.1からは独自のグラフィックエンジン持つようですし
gnuplotの方がオプションになるんでしょうね。
でもたぶん,epsとかpngの作成をgnuplotでやらないのは,
時間の無駄なのでたぶんそのあたりはgnuplotでやるんじゃないですかね。

530 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/19(月) 11:48:40 ]
我輩は猫である

531 名前:octave for windowsメモの筆者 [2008/05/19(月) 12:05:09 ]
>>530 了解(笑)
まあ,上は他人向けということで。


532 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/19(月) 12:46:33 ]
>>528
MSVC版はATLASが入ってるんですね
それで安心しました

epsやpngの作成はprint文を使ってます
%
% plot graph
%
if exist('OCTAVE_VERSION')
% for octave
print('hoge.png','-dpng');
print('hoge.ps','-dpsc2','-landscape');
else
% for MATLAB
set(gcf,'PaperOrientation','landscape')
print('-dpsc2','hoge.ps');
set(gcf,'PaperOrientation','portrait')
print('-dpng','-r80','hoge.png');
end;

MATLABでもGnuplotでもJHandleでもこのまま使えます

しかしMSVC版でJHandleでグラフ描いても、
print関数で出力されるグラフはgnuplot経由なんですか…
確かにpgnuplot.exeとwgnuplot.exeが入ってますね

このあたりの実装はめんどうなんでしょうね

533 名前:octave for windowsメモの筆者 [2008/05/19(月) 14:04:59 ]
>>528 そうです
AMDでなければ自動的に認識されATLASが入りIntel系の最適化がなされます。
インストールのとき,たぶんIntel ...とでてれば大丈夫です。
MSVCのpgnuplotはいわゆるpgnuplotでなくコンソールモードのgnuplotです。
話が長くなるので詳しいことはやめますが,パイプの関係です。

あれだけ多くのグラッフィクターミナルに対応するのに,
gnuplotを使わない手はないでしょう。
私は,gnuplotの13年選手。
最後のキメのグラフは,gnuplot。
Octaveにはデータだけはかせてgnuplotで作成します。
そのほうがかゆいところに手がとどくんで。

gnuplotは確かにOpenGLとか使わないんで,
レンダリングには限界があるのはわかりますが
リアルタイム描画じゃなきゃいらんしな。
とういうことで,printコマンドの作画はgnuplotなんですよ。

MSVC版を使う気せんのは,データの転送の問題で現在のgnuplotの特長の
マウスズーミングが使えなくなることです。
で私は,cygwin版にはそれが可能なcvs版のgnuplotをつけています。
マウスズーミングの聞かないgnuplotなんてgnuplotじゃないというのが
私の叫びです。




534 名前:octave for windowsメモの筆者 [2008/05/19(月) 16:41:50 ]
>>532ですが
MSVC版はATLASが入ってるんですね
それで安心しました

>>520
のいうとおりの部分もあります。ATLASで確かに速くはなります。
Windowsでは,アトラスは一個のコアのみ使うと思います。

ゆえに,Core2Duoなどのマルチコアの性能を最大限に発揮するには,
Linuxでアトラスを走らせる必要があります。

まあ,でも一個のコアの最適化で通常十分速いので普通はそれでいいと
思いますよ。

それでだめになったら,考えればいいことですよ。


535 名前:octave for windowsメモの筆者 [2008/05/23(金) 08:23:34 ]
最近,パワレスなんでとりあえずここに流しときますね。

Octave/Windows compiled with VS2008 available

ttp://www.cae.wisc.edu/pipermail/help-octave/2008-May/009351.html

VS2008は今年でた,MSのコンパイラ,SSE3にも対応しているようですが,
自動認識はしてくれないので自分で選択してください。
HT系のPentium以降は確かSSE3対応です。

また,コンパイラは年々進むのでたぶん今までのより
こちらのほうがパフォでると思います。

まだ,試してませんので
試した人,報告よろしく!!!!!!!


536 名前:octave for windowsメモの筆者 [2008/05/23(金) 08:42:20 ]
>>535
ちょっと訂正
(誤)
VS2008は今年でた,MSのコンパイラ,SSE3にも対応しているようですが,
自動認識はしてくれないので自分で選択してください。
HT系のPentium以降は確かSSE3対応です。

====>

(正)
VS2008は今年でた,MSのコンパイラです。
おかげでSSE3にも対応しているようです。
HT系のPentium以降は確かSSE3対応です。
上記ページによると,インストーラーの自動認識はSSE2まで,
SSE3を搭載CPUをお使いの方は,手動でSSE3を選択してください
だそうです


537 名前:octave for windowsメモの筆者 [2008/05/23(金) 18:05:01 ]
>>535
置き場は下。
sourceforge.net/project/downloading.php?group_id=2888&use_mirror=osdn&filename=octave-3.0.1-vs2008-setup.exe&79970276

octave-3.0.1-vs2008-setup.exeです。

538 名前:524 mailto:sage [2008/05/25(日) 00:42:12 ]
>>537
前回はPentium Mの1.7GHzでしたが
Core2 Duo 2.1GHzでは(インストールの時にSSE3を選びました)
oregonatorでテストしてみますと…

octave:1> bench1
ans = 1.7748   ←たぶんJHandleのグラフウィンドウが立ち上がるオーバーヘッド
octave:2> bench1
ans = 1.1617
octave:3> bench1
ans = 1.2209
octave:4> bench1
ans = 1.2406

でした。まあクロック分速くなった程度ですね。
同じマシンでcygwinだと

octave:1> bench1
ans = 4.26500
octave:2> bench1
ans = 4.06200
octave:3> bench1
ans = 4.07800
octave:4> bench1
ans = 4.03100

こんな感じですけど

539 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/26(月) 11:39:32 ]
ついでなのでMATLABとの比較もします。MATLAB,Octaveで共通に動かせる用に小改変。
oregonator.mは
function dx = oregonator (A,B)
% Copyright (C) 1997, 1998, 2007 John W. Eaton
global octflag;
x=B;t=A;
if octflag,
x=A;t=B;
end;
dx = zeros (3, 1);
dx(1) = 77.27*(x(2) - x(1)*x(2) + x(1) - 8.375e-06*x(1)^2);
dx(2) = (x(3) - x(1)*x(2) - x(2)) / 77.27;
dx(3) = 0.161*(x(1) - x(3));
end;

bench1.mは
global octflag;
x0 = [ 4; 1.1; 4 ];
t=linspace(0,500,1000);
octflag=0;
if exist('OCTAVE_VERSION'),
octflag=1;
end;
tic
if octflag,
y = lsode ('oregonator', x0, t);
else
[tpts, y]= ode15s (@oregonator, t, x0);
end;
toc
plot (t,y);

540 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/26(月) 12:02:22 ]
で、この実行結果ですが…
Pentium 4 3GHzマシンで

MATLAB7.1
>> bench1
経過時間は0.537172秒です
>> bench1
経過時間は0.539443秒です
>> bench1
経過時間は0.536567秒です

Octave 3.0.1 MSVC, Octave UI上
octave:1> bench1
Elapsed time is 1.98581 seconds.
octave:2> bench1
Elapsed time is 1.94367 seconds.
octave:3> bench1
Elapsed time is 1.95329 seconds.

Octave2.1.73 Cygwin
octave:1> bench1
ans = 13.4540
octave:2> bench1
ans = 13.0160
octave:3> bench1
ans = 13.0160

かなり差がありますね

541 名前:octave for windowsメモの筆者 [2008/05/27(火) 18:18:06 ]
>>539 >>540 まあそんなもんでしょう。MATLABはJITだからね。
私は,大体lsode使うときは,C++で関数書いて,
mkoctfile使って高速化します。
www.geocities.jp/tmoctwin/msvcoct.html

VS2008対応のやつなら,おそらくCase2が使えると思います。

でもATLASの威力みたいなら
行列計算をしたほうがいいですよ。
adlib.rsch.tuis.ac.jp/~akira/unix/octave/speed.html



ATLAS性能チェックするには,行列計算をしないと。

542 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 16:02:29 ]
MSVC版3.0.1(vs2008版)を使ってるのですが
clear
だけだと何ともないのですが
clear all
だと
アプリケーションエラー
が出て死にます
コンソールには

panic: Segmentation violation -- stopping myself...
attempting to save variables to `octave-core'...
save to `octave-core' complete

なんて出ます
Core2 Duo 2.1GHzでXP Homeです

543 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 21:54:56 ]
Vista Core2Duo T7500でMSVC 3.0.1を使っているんですが、直前にgnuplotで表示したグラフを

print -djpg graph.jpg

で出力したはずなのに検索にgraph.jpgが引っかからないです。
出力先が不明なのでドライブすべてで検索をかけてるんですが見つかりません。
どなたか理由わかりませんか?



544 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 22:29:24 ]
あと、lsをすると以降何を打っても表示されなくなるバグがありますがどこへ報告すればいいですか?

545 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 22:41:18 ]
>>544
このページを読んでみて下さい
ttp://www.obihiro.ac.jp/~suzukim/masuda/octave/octave_config.html

546 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 22:47:50 ]
>>543
こうじゃないんでしょうか?

print(printoutname,'-dpng');

へルプを見ると
octave:1> help print
-- Function File: print (FILENAME, OPTIONS)
Print a graph, or save it to a file

FILENAME defines the file name of the output file. If no filename
is specified, output is sent to the printer.

OPTIONS:
`-dDEVICE'
Output device, where DEVICE is one of:
`png'
Portable network graphics
`jpg'
`jpeg'
JPEG image
`gif'
GIF image
とか書いてありますよ

547 名前:octave for windowsメモの筆者 [2008/06/05(木) 05:52:07 ]
>>542 help@octave.orgに行って聴いてください。
Michaelさん本人に聞くのが
一番。英語を怖がってちゃだめですよ。

>>545
もう,3.0.1からconsole2インストールされないので,それは関係ないはず。
cmdで使ってる?それとも,octave UI。Octave UIなら,alpha版なら仕方なし。
cmdかckwに乗り換える。
それでもだめなら,
help@octave.orgに行ってMichaelさんに直接きく。

いま,メンタル面で私 余裕ないから 昔みたいに,ここのを本家に上げる
のはやんないよ。
甘えず自分でやってね。


548 名前:octave for windowsメモの筆者 [2008/06/05(木) 05:53:30 ]
>>542 help@octave.orgに行って聴いてください。
Michaelさん本人に聞くのが
一番。英語を怖がってちゃだめですよ。

>>545
もう,3.0.1からconsole2インストールされないので,それは関係ないはず。
cmdで使ってる?それとも,octave UI。Octave UIなら,alpha版なら仕方なし。
cmdかckwに乗り換える。
それでもだめなら,
help@octave.orgに行ってMichaelさんに直接きく。

いま,メンタル面で私 余裕ないから 昔みたいに,ここのを本家に上げる
のはやんないよ。
甘えず自分でやってね。


549 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 07:42:32 ]
>>548
情報交換してるだけで、誰もあなたには頼ってないと思うよ
自意識過剰なんじゃない?

550 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 09:34:05 ]
>>549
まあ一般的に、なんとかの中の人ってのはついつい俺がやってるんだぜ的に
自分を追い込んでしまいがちだからな。
当人もメンタルに余裕ないって言ってるんだし、そのへんはスルーで。


551 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 10:47:28 ]
>>542
既に作者がbugだと認めております
ttp://www.nabble.com/%3A-bug-to17459505.html#a17467541

I can reproduce this bug. Simply typing "clear all" at octave prompt
makes octave crash. This does not occur with development branch.
I'll try to find the reason, but this can take time as I have to recompile
octave with debug enable.

Michael.

VS2005版は問題無いようなので、もう少し待ちましょう

552 名前:octave for windowsメモの筆者 [2008/06/05(木) 14:30:41 ]
>>549 さん。すいません
>>550 さん。ありがとう,そのとおりです。

メンタルに余裕がないのも(というか病気なんです),
書き方が過剰になるわけ原因なわけで,そこは免じてゆるして下せー。

あとから変なこと書いたと思ったのでみたら,
指摘はあるかもと思いましたが
フォローは感謝。


まあ,やってるときには,Michaelさんとはほとんど毎日メールしてたのも
事実なので,たぶん情報にすぐに答えられたと思います。

まあ,しばらく,おとなしくしてますので,妄言についてはご容赦を。
<m(__)m>


553 名前:544 mailto:sage [2008/06/05(木) 17:59:55 ]
>>545
ありがとうございます。それで直りました。

>>547
特に設定を変える知識を持ってないのでデフォルトのcmdのはずです。
なんでだろ。



554 名前:octave for windowsメモの筆者 [2008/06/06(金) 10:15:34 ]
>>553
cmdなら問題ないはず,なんでだろ?まあ,動いたんならいいんじゃない。

555 名前:octave for windowsメモの筆者 [2008/06/07(土) 12:32:41 ]
>>553 >>554
しらべて見ました。octaveをショートカットより起動すると起きますね。
何からのバグかも。Octave.exeをダイレクトにダブルクリックしてやると
cmdでも何の問題もありません。
ckwの場合は,ckwがcmdをバックグラウンドで起動するので問題になるようです。

一回バッチに落としてやれば問題ないので回避は可能ですが,ckwのほうが便利
でしょうから,まあ,そのままで。
致命的でもないので,元気がでたら,maintainersのMLに報告します。


556 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/07(土) 14:21:21 ]
>>551
そのVS2005版もprintの挙動がおかしくないか?
pngを出力すると、前はグラフウィンドウのインスタンスから画像を生成していたのに対して
3.0.1版は画面をそのままハードコピーしてるみたいだぞ
なので3.0.1版だとグラフのウィンドウの前に他のウィンドウが重なってると
重なったままのイメージがpngに出力されるし
グラフが最小化されてる時は真っ黒なpngが生成されてる(ようだ)
psで出力してimagemagickのconvertでpngにした方がきれいかもしれん

557 名前:octave for windowsメモの筆者 [2008/06/07(土) 16:01:06 ]
>>544 >>553 >>554
やってみたら,結構難しい問題のようです。
どうもショートカットから,octaveを日本語モードで起動するとcmdで発生する見たい。
page_output_immediatelyをTrueにして,lessを無効にすると症状はでない。
また,usモードなら出ないので,あちらに報告してもだめでしょうね。
どうも日本語windowsがらみのバクだから。

ダイレクトにoctave.exeやスタートアップのバッチから起動するとlessが有効
でも問題ない。
原因不明。どうも日本語windowsがらみのバクだから,ckwを使うなり,
page_output_immediately(true)を実行して,lessを無効化するか,
ショートカットを使わずにOctaveを起動するかで逃げるしかないと思います。


558 名前:octave for windowsメモの筆者 [2008/06/07(土) 16:48:09 ]
>>557
勘違い。
page_output_immediately(true)は,lessを無効化しない。
page_screen_output(false)がlessを無効化する。
でした。

ショートカットのリンク先を
C:\Programs\Octave-3.0.0\bin\octave.exe --persist --eval "page_output_immediately (true)"
のようにとしておくと,lsは出てきますね。うーん,よくわからないけど,
まあ回避可能ということで,回避してつかうしかないと思います。

559 名前:octave for windowsメモの筆者 [2008/06/07(土) 17:50:12 ]
>>556
gnuplotインストールしてますか。
gnuplotインストールしてあれば,gnuplotでprintすると思うんですが。
まあ,jhandle使わんのでよくわかりませんが,gnuplotだったらなんの
問題もないですよ。

560 名前:octave for windowsメモの筆者 [2008/06/07(土) 18:29:23 ]
>>559
>gnuplotインストールしてあれば,gnuplotでprintすると思うんですが。

は勘違いかも,確認してないこと書いてすみません。
gnuplotをbackendにしてれば問題ないのは正しいですが,
好みの問題があるので。



561 名前:543 mailto:sage [2008/06/09(月) 06:03:46 ]
>>556
>>546の言うとおりに
x=[0:0.1:pi];
plot(sin(x))
print('test.png','dpng')
だとエラーは出ないけど相変わらずファイルが作成されない
スクリーンキャプチャするしかないか

562 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 07:06:06 ]
-が足りない

563 名前:名無しさん@お腹いっぱい。 [2008/06/18(水) 12:46:22 ]
初心者です。
質問があるんですが、EXCELのデータをインポート?するにはどうすれば良いですか?
A=xlsread("filename.xls")
とすると、
some elements in list of return values are undefined
と警告がでます。
Octaveはread自体ができないんでしょうか?



564 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/18(水) 16:43:50 ]
>>563
>help xlsread

%% First, you need to convert your excel table into a tab-delimited
%% text file. Then you can use XLSREAD to load that file.

この辺は?

565 名前:octave for windowsメモの筆者 [2008/06/18(水) 19:25:40 ]
cygwin公式版Octave 3.0.1がでた模様です。

566 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/18(水) 19:30:14 ]
>>563
?
oshiete1.goo.ne.jp/qa4109476.html

567 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/18(水) 19:50:26 ]
file: filename.xls not found から進歩してるw

568 名前:名無しさん@お腹いっぱい。 [2008/06/18(水) 20:59:20 ]
>>566それも俺っすww

569 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/19(木) 10:38:48 ]
>>568
ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88

570 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/07(月) 01:48:19 ]
VS2008版とそれ以外ってどっちがいいんだよ

571 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/07(月) 08:07:55 ]
過去レス読め

572 名前:octave for windowsメモの筆者 [2008/07/07(月) 13:45:41 ]
>>570, 571
その前に
リリースノート読めばいいじゃないすか。
ttp://sourceforge.net/project/shownotes.php?release_id=597120&group_id=2888
Michaelさん本人がかいてるんだし。
確かに本人がMLでリリースノート書いてあるのによめといちど愚痴ってまし
たが,リリースノートのマークって小さすぎてあそこに重要な情報がかかれて
いるなんてあんまり思えませんが。
まああれはSourseForgeの責任だからOctaveチームを責めないでね。

まあ,つかってるパソコンがIntelCPUならSSE3のサポートがあればVS2008
でなければ,そうじゃないやつ。
AMDの人はGenericになるからコンパイラが新しいことでvs2008ってとこかな
試してないから分からんけどまあ,常識的に考えればそんな線でしょう。


573 名前:octave for windowsメモの筆者 [2008/07/07(月) 13:50:08 ]
そろそろBenjamin氏によるMingw版octaveも出そうです。




574 名前:octave for windowsメモの筆者 [2008/07/10(木) 12:27:09 ]
MSVC octave についてのミニ情報

1.Jhandlesについて
print commandはpostscriptしかサポートしていません。

2.Jhandlesとgnuplotを両方インストールした場合の切り替え
gnuplot-->Jhandles
octave>pkg load jhandles
Jhandles-->gnuplot
octave>pkg unload jhandles

3.gnuplotでもprint('hoge.emf', '-demf')はこける。
これは,gnuplotが4.2.2だから,gnuplot 4.2.3では起こりません。
これは次のリリースで修正するそうです。

以上は皆,Octave ML上でMichae氏自身に確認しましたので,間違いないでしょう。




575 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/15(火) 08:56:59 ]
Octave Jhandleを使った場合にpng出力する方法

用意するもの Cygwin

1) print文でpsで出力する
2) 以下のconv.shをcygwinから実行する

DUMMY=`perl -i -p -e 's/Helvetica 10.0/Helvetica 12.0/g' *.ps`
for i in `ls -1 *.ps`;do convert -density 120x120 $i ${i%.ps}.png;done

一行目はフォントをデフォルトの10ポイントから12ポイントに
変換するだけのものなので無くてもいいですし、もっと読みやすくする場合は
12.0じゃなく14.0にしてもいいかもしれません。

mingwのmsys用Imagemagickを入れればcygwin無しでも出来るかも知れませんが
どうでしょうか


576 名前:octave for windowsメモの筆者 [2008/07/15(火) 11:46:30 ]
ps=>pngの変換ならghostscriptを入れればcygwinなんていりませんよ。
gsviewもほしいですが。

ttp://auemath.aichi-edu.ac.jp/~khotta/ghost/index.html

gnuplotでも私はpng terminalは使わず,ghostscriptでps=>png変換です。
そっちの方がきれいなんで。

577 名前:octave for windowsメモの筆者 [2008/07/15(火) 12:06:15 ]
>>576
うーん。反省。「cygwinなんていりませんよ。」はないな。すみません。
<m(__)m>
私もcygwinや野郎なのに。

Windows Native版 Imagemagickはmsys用ではなく,普通のwindows
アプリケーションとして存在しています。
コマンドラインコマンドとしてちゃんとconvert使えますし,
ps=>png変換できると思います。

また,cygwinでも,gsでもできると思います。どちらがきれいかは比べた
ことがないので分かりませんが。


578 名前:名無しさん@お腹いっぱい。 mailto:age [2008/07/20(日) 10:09:23 ]
Windows用Octave2.9.19はwormに感染しています!!
ttp://oshiete1.watch.impress.co.jp/qa4133945.html

579 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/20(日) 11:00:40 ]
なんだと

580 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/20(日) 11:59:42 ]
>>578
それ以降のバージョンもアウトか?

581 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/20(日) 22:14:34 ]
>>578
誤検知ジャネーノ?(まったくアンチウィルスベンダを信用してない俺)


582 名前:octave for windowsメモの筆者 [2008/07/22(火) 08:33:04 ]
>>581
ウィルス・ワーム混入騒ぎは本家MLでもおきました。
どうも581さんの言うとおりAnti-virus softwareのご認識のようです。

583 名前:octave for windowsメモの筆者 [2008/07/22(火) 08:35:41 ]
開発版のOctave-3.1.50 MSVC版がでました。

Ver.3.2(正式版)を目指した。Ver 3.1のリリースが,公式に始まり,Octave-3.1.50のソースが
配布されました。Michael氏は早速MSVC版のリリースをされました。
目玉はOpenGL/FLTKによるgraphics backendの実験的な実装です。

ttp://sourceforge.net/project/showfiles.php?group_id=2888

OpenGL/FLTKによるgraphics backendの使い方などの,詳しいことは,リリースノートをご覧ください。

ttp://sourceforge.net/project/shownotes.php?group_id=2888&release_id=614662





584 名前:octave for windowsメモの筆者 [2008/07/28(月) 16:07:43 ]
開発版のOctave-3.1.50 MSVC版にバンドルされるgnuplotは,4.2.3です。
print('hoge.emf', '-demf')のようにemfが生成されるようになりました。
このgnuplotを他のバージョンで使えるかは,これからやってみます。
(dllの依存性を調査せねば。)

585 名前:名無しさん@お腹いっぱい。 [2008/07/30(水) 22:28:27 ]
octaveをcygwinで使ってますが(共に最新ver)
octaveとgnuplotがつながりません。
>>plot 〜〜
とか打つとコンソールに数値が大量に出るだけでグラフ化されてくれません。

何が原因でしょうか。
ちなみにその時のコンソール表示が下記です。

gnuplot>set terminal aqua1 enhanced
line 0: unknown or ambiguous terminal type; type just 'set terminal' for a list.

よろしくお願いします。m(_ _)m

586 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/30(水) 22:44:04 ]
MacOS用のgnuplotがいるってか?

587 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/08/03(日) 22:18:48 ]
使えねーここ・・・

588 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/08/05(火) 22:31:30 ]
net2comというのがあるらしい
sourceforge.net/projects/net2com/

まだインストールしてないけど
たぶんこれを入れると、
telnetでlocalhostに入ると
設定したシリアルポートに繋がるんじゃないかと思う

確かoctave forgeにはsocksの関数があったはずなので
このnet2com経由でWindows版octaveからシリアルポート操作ができるかも

589 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/08/06(水) 15:31:29 ]
というわけで、net2comをインストールしてみました
そのページにあるような外観ではなくてへぼいです

それで某シリアル機器をCOM3につなぎ、TERA TERMのシリアルモードで応答する事を確認
次にnet2comを立ち上げて、ポートと速度を設定し、Socketのポートも適当に設定
(ここでXP SP1以降ではポートのブロック解除ダイアログが出るので解除)
次にTERA TERMをTelnetモードにしてlocalhostのさっき設定したポートに接続
そうすると、

ELCOME TO NET2COM
SETTINGS ARE:
COM PORT.......3
COM SETTINGS... 9600,n,8,1
OPENING COM PORT
COM PORT OPEN
OK

と出て、インタラクティブにコマンド操作が出来ます
モデム付きノートの場合はモデムポートに接続し
ATコマンドでもやってみるといいでしょう。

後はOctaveでどうやって操作するかだけだな。どうすれば…

590 名前:名無しさん@お腹いっぱい [2008/08/10(日) 15:34:54 ]
FortranかCで計算した後Octaveと結合してデータをplotしたいのですが、
gnuplot みたいに popen()、system()で呼び出すことが可能でしょうか?
可能ならどうしたらよいかご教示ください。

591 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/08/10(日) 16:26:34 ]
>>590
ファイルに書き出して読めばいいと思うよ

csvread.mってのがあるので

FORTRANやCでカンマ区切りのcsvファイルを作って
csvread.mで読み込めばOK

test1.csv というファイルの中身
1,0.1,1.34E-01
2,0.2,1.35E-02
3,0.8,1.40E-02
4,0.9,1.90E-03

これをoctaveで読み込む

octave:5> data1=csvread('test1.csv')
data1 =

1.0000000 0.1000000 0.1340000
2.0000000 0.2000000 0.0135000
3.0000000 0.8000000 0.0140000
4.0000000 0.9000000 0.0019000

このcsvreadは文字が混在してるとエラーが出るので数字だけにしましょう
あとExcelもインストールしてあると、*.csvのファイルはダブルクリックで開けます

592 名前:octave for windowsメモの筆者 [2008/08/11(月) 12:21:46 ]
>>585
gnuplot>set terminal aqua1 enhanced
line 0: unknown or ambiguous terminal type; type just 'set terminal' for a list

うーむ。なんか変。誰かにいたずらされたんじゃないすか?。
aqua term はMAC OSX用ですからね。

ちゃんと一回uninstallして,インストールしなおして見れば?

593 名前:octave for windowsメモの筆者 [2008/08/11(月) 12:53:55 ]
>>589
wsh使えば,多分tera termにコマンド流しこめるので,
octaveからsystem comand でwshのスクリプトを流しこめばいいのでは。

wshがもしわからなかったらGoogleで調べてね。




594 名前:octave for windowsメモの筆者 [2008/08/11(月) 13:03:55 ]
>>593
結果は,tera term でログファイルを作成するようにしておけば,それをoctaveのc言語likeな関数で読み込めばいいですよ。
Ver3なら正規表現などもサポートしているはずなのでいろんなテキスト操作ができるはず。


595 名前:octave for windowsメモの筆者 [2008/08/11(月) 13:14:57 ]
>>585 >>592
もしくは,.octavercや...m\startup\octaverc のなかに,
putenv('GNUTERM','x11');
に書き込んでみては?



596 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/08/11(月) 16:04:47 ]
>>593
使った事ないけどforgeにsocketコマンドの
accept
bind
connect
disconnect
gethostbyname
listen
recv
send
socket
があるから、

socketコマンドでソケットを生成して
connectコマンドで指定したIPアドレスのポートを開き
sendコマンドでデータ送って
recvコマンドで通信バッファを読み
disconnectコマンドでソケットを閉じればいいんじゃないかと思う

597 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/08/11(月) 16:46:24 ]
>>585
書いてあるようにset terminalを打って使える種類を確かめなよ。
show terminalで現在のターミナルが分かる。

598 名前:名無しさん@お腹いっぱい [2008/08/11(月) 22:51:20 ]
>>590
教えて頂き、有難うございました。
実は、

#define OCTAVE_PATH "/usr/local/bin/octave"
int main()
{
  計算;

FILE *gp;
gp = popen(OCTAVE_PATH, "w");
fprintf(gp, "plot(計算結果のデータ \n");
あるいは
fprintf(gp, m-file);
fflush(gp); /* Don't forget to flush the buffer. */
getchar();
pclose(gp); exit(EXIT_SUCCESS);
}
みたいにしてoctaveだと長くかかる計算をCあるいは
Fortranでさせて最後にグラフを書かせかったのですが、
gnuplotならpopen()やsystem()でできるのですが、
octaveだとplotできなくて困っておりました。
1. shellscriptを書いてcプログラムを実行して、
octaveに入ってからoctaveのpopen/systemで
 plotxxx.m を実行する。
2. 最初からoctaveのpopen/systemでcプログラムを
 実行して結果をoctaveで描く。
3. octave(mファイル)など使わずにcプログラム+gnuplotを使う

のいずれかが普通なのでしょうか?

599 名前:octave for windowsメモの筆者 [2008/08/13(水) 10:44:17 ]
>>598
もちろん3番です。悩むまでもありません。
octaveのplot系のコマンドは,sophisiticated されたコマンドですが,スピードがとろい,細かい設定が無理または却って面倒です。

私は,octaveで計算した結果を吐き出して,gnuplotを使うことも多いですよ。


600 名前:octave for windowsメモの筆者 [2008/08/13(水) 10:48:05 ]
>>598 補足:ちょっとしたテキスト処理をはさむときは,私はawkを使います。
awkは,軽く,正規表現が使え,テーブル型のデータを扱うことを前提としていてなかなか便利です。
こりゃ脱線しすぎかな。許して下せー。



601 名前:octave for windowsメモの筆者 [2008/08/13(水) 15:28:27 ]
octave for windowsメモ
ttp://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html

に 「開発版のMSVC Octave-3.1.50 のgnuplot-4.2.3を使用する」というメモを記載しました。これにより,emfファイルの作成が可能になります。

602 名前:octave for windowsメモの筆者 [2008/08/13(水) 15:50:22 ]
>>588 >>589
シリアルについては,480番あたりの過去ログも参考にしてください。


603 名前:名無しさん@お腹いっぱい。 [2008/08/13(水) 23:51:49 ]
ウルトラ初心者からの質問ですが、回答頂ければと思ってます。
メモ帳や、Excelに記入した30*30の行列をoctaceに貼り付けることは
可能でしょうか?
さすがに手打ちで一つづつはつらいものがありまして・・
ちなみにwindowsから利用で、octave3.1.50を使ってます。
>>563 の方も同じような質問しているようですが・・・





604 名前:octave for windowsメモの筆者 [2008/08/14(木) 11:19:32 ]
>>603

>>564  または,>>591 で可能です。
564
%% First, you need to convert your excel table into a tab-delimited
%% text file. Then you can use XLSREAD to load that file.
最初にエクセルのテーブルをタブ区切りのテキストファイルに変換する。そうすれば,XLSREADでファイルをロードできる。

これでいいすか?

605 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/08/16(土) 10:59:45 ]
>>596
なんとなくわかった事の覚え書き(チラシの裏みたいなもの)

1) そのnet2comを入れて、ノート内蔵モデムのCOM3をlocalhost:8003にしてStartする
2) octave のコマンドラインから次の順番でコマンドを入れる
octave:1> more off
sock1 = 1252
octave:2> sock1=socket(AF_INET,SOCK_STREAM,0)
octave:3> server_info=struct('addr','localhost','port',8003)
server_info =
{
addr = localhost
port = 8003
}
octave:4> rc=connect(sock1,server_info)
rc = 0
octave:5> [msg_s,len_s]=recv(sock1,255);
octave:6> msg='ATI0';
octave:7> msg(5)=13;
octave:8> rc=send(sock1,msg)
rc = 5
octave:9> [msg_s,len_s]=recv(sock1,20)
msg_s =
13 10 53 54 48 48 48 13 10 79 75 13 10
len_s = 13
octave:10> num2str(msg_s,'%c')
ans =
56000
octave:11> disconnect(sock1)
rc = 0

606 名前:octave for windowsメモの筆者 [2008/08/18(月) 12:47:23 ]
>>605 なるほど勘違いしていました。すねわち,forgeにsocket機能がある
からNet2comを使用して,socket機能で通信しようというわけですね。
自分の書いたレスが恥ずかしい。 まっ,いっか勉強になったし。ありがとう
ございます。


607 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/08/18(月) 19:13:18 ]
>>606
ここの一番下の方にOctaveでのSocketの使用例があります
ttp://www.nabble.com/Low-level-sockets-td4253125.html
(しかしドキュメント少なすぎ)

昔、Parallel Octaveをやってる人がいましたが
あれは独自実装のSocket経由で2台以上のPCのOctaveを接続して
1台をlistenで計算サーバーにさせて、もう一台からsendでデータを送って、
recvで計算結果を得るといみたいな事をやってるようでした。
サーバーが10個ぐらいあれば、データ転送のオーバーヘッドがあるにせよ
10個のパラメータを1度に試せるわけで、特定的な問題なら
一台で解く場合よりも速くなるのでしょう。

608 名前:octave for windowsメモの筆者 [2008/08/19(火) 15:18:25 ]
ttp://www.nabble.com/release-3.0.2-to19037149.html
のようにmaintainers向けのOctave-3.0.2がリリースされました。
まもなく,公式ページにもソースが載るでしょう。

また,新しいforgeも準備されつつあります。
これも,ここ1,2週間のうちに出ると思います。



609 名前:名無しさん@お腹いっぱい。 [2008/08/19(火) 22:42:30 ]
>>599,600
有難うございます。
分かりました。確かにawkや c + gnuplot は便利ですよね。
最後に一つだけ質問:
octave だとdataから簡単にx,yzのデータから3D plot ができます。
ところが、gnuplotを用いるとデータの途中に適宜空行を入れないと
いけないのですが皆さんどのような工夫をされているのでしょうか?
1.メインプログラムでデータ出力時に空行を適宜入れる。
2.gnuplotで読み込む前に空行を入れる。
3.他の技がある--> ご教示ください。


610 名前:名無しさん@お腹いっぱい。 [2008/08/20(水) 16:53:10 ]
>>603 です。 >>604様へ
まだ、うまくいきませんが・・・

丁寧な御回答ありがとうございました。

現在は octave workshop を用いて、

付属のメモ帳を使って頑張っています。

611 名前:octave for windowsメモの筆者 [2008/08/20(水) 18:51:01 ]
>>610 octave workshopはちょっとバグ多いので。
OctaveのGUIのフロントエンドを利用するならQtOctaveがいいですよ。
ttp://wiki.octave.org/wiki.pl?OctaveForWindows
から飛んでください。確か表形式の行列入力あった気がします。


612 名前:octave for windowsメモの筆者 [2008/08/20(水) 18:55:41 ]
>>609
すみません。この板の範囲ではないので,gnuplotには,いい掲示板があるのでそこいって聞いてください。

Gnuplot Q&A 掲示板
ttp://ayapin.film.s.dendai.ac.jp/cgi-bin/trees.cgi


613 名前:octave for windowsメモの筆者 [2008/08/22(金) 16:12:12 ]
octave 3.0.2のソースが正式にリリースされました。
新しいForgeもまもなくでるので,
次のバイナリリリースは3.0.2+新forgeとなるでしょう。

ttp://www.gnu.org/software/octave/download.html




614 名前:octave for windowsメモの筆者 [2008/08/25(月) 08:48:37 ]
新しいOctave-Forgeがリリースされました。
ttp://www-old.cae.wisc.edu/pipermail/help-octave/2008-August/010651.html

そのうち各種バイナリも整備されるでしょう。

615 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/08/25(月) 20:50:52 ]
いつも乙です >> 中の人

616 名前:名無しさん@お腹いっぱい。 [2008/08/27(水) 00:50:18 ]
FreeBSDのportsがまだ新しくなってないな。
3.0.1のまま

617 名前:octave for windowsメモの筆者 [2008/08/27(水) 12:28:38 ]
>>615 こちらこそ乙です。


618 名前:octave for windowsメモの筆者 [2008/08/27(水) 12:35:06 ]
>>616 もうちょっと待ってくださいや。Forgeが出たばっかしだし。
3.0.xのシリーズの本体はminor changeなので問題ないけど,
Forgeは新しいのがでると新しいパッケージがでて対応大変なんだよ。
Maintainerの苦労もわかってやって下せー。
おねげーしますだ。

619 名前:octave for windowsメモの筆者 [2008/08/28(木) 09:20:12 ]
うーん。cygwinでForgeやってるけど前回できたoctgprがうまくビルドできん。
前のバージョンならうまくいくんだけど。

620 名前:octave for windowsメモの筆者 [2008/08/29(金) 11:18:04 ]
>>619 自己レスです。Jaroslav Hajek氏(最近はこの方が,3.0.xの主たる
コードをかいてます。JWEさんは,3.1ブランチのコードに専念されてます)が
ミスがあったので,SVNにあげたと連絡ありで解決しました。
Cygwin gcc-dw2 版3.0.2+forge週明けにはリリースします。

621 名前:octave for windowsメモの筆者 [2008/09/01(月) 17:41:14 ]
Octave 3.0.2 + forge 20080831 on cygwin (by gcc-dw2)をリリースしました。

ttp://www.tatsuromatsuoka.com/octave/Eng/Cygwin/

です。

622 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/02(火) 02:51:50 ]
>621
あんたみたいになるにはc言語を勉強するの?

623 名前:octave for windowsメモの筆者 [2008/09/02(火) 09:15:17 ]
>>602 Cもそうですが,それよりもUNIXの開発環境の知識が問われます。
でも,一番肝心なのは外国人とメーリングリストでやり取りする度胸ですね。



624 名前:octave for windowsメモの筆者 [2008/09/02(火) 09:17:27 ]
>>623 >>602>>622の間違いです。すいません。

625 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/04(木) 11:03:54 ]
初心者ですが、質問させてください。
インパルス表示をさせようと、
プロット時に"^"を入力したのですが、
線ではなくなぜか△のマークが表示されます。
「それまでのプログラムに問題があるのかな。」
と、思い打ち直しましたが結局同じ症状でした。
違う簡単な式などをプロットしても同じ状況です。
この状況は打開できるでしょうか。
また、ほかにインパルス表示をさせる方法がありますでしょうか。
よろしくお願いいたします。

ちなみにOctaveのバージョンは3.0.1になります。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<345KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef