データ解析ツールoctaveを語ろうat UNIX
データ解析ツールoctaveを語ろう - 暇つぶし2ch521:octave for windowsメモの筆者
08/05/17 17:25:02
>>520
確かにそうでしょうね。

でも,BLASに関する部分はOctaveはATLASをリンクできるので
行列計算の速さはALTASでTuneすればある程度補えるはず,
ATLAS 3.8.0をcygwinのmingwコンパイルモードつかって,自分でビルドして,
mingwのoctaveもそれを使ってビルドすればそこそこいくはず。
ATLAS 3.8.0自体はCore2Duoの並列計算をターゲットとしている。
したがって行列計算の並列化ならOctaveである程度可能です。

要は時間と金のトレードオフだと思いますが。
理解間違ってますかね。
私は古いコンピュータ使っているからわからんけど
お金をかけないで高速に計算しようとすれば,OSとして
Linuxを選ぶべきでしょう。
Open MP対応のインテルフォートランを利用するのが一番安くて速く計算
できるはす。
話がOctaveからずれとるなあ。

まあ,結論はWindowsで簡単に速く計算したかったら,金払えということ。

URLリンク(math-atlas.sourceforge.net)

522:octave for windowsメモの筆者
08/05/17 17:33:41
>>521
上に挙げたaltasの記述を読むとAtlasのmulti thead はPosix theadを使うので
Windowsではcygwinの使用が前提となります。
つまりはあまり期待するなということ

まあ,結論はWindowsで簡単に速く計算したかったら,金払えということ。

という結論は,代わりませんが,
ある程度手間をかけても速く安く計算したいならwindowsは使うな
ということ。


523:octave for windowsメモの筆者
08/05/17 17:52:41
>>522
私の目的は手軽に,安く科学技術計算をやることですので,本格的な高速化
はするつもりはないので,本格的にやられるなら,金をかけるか
Linux使うかだと思いますよ。
Windowsマシンは手元においておいて,XmingをXサーバーとして入れとけば
Windowsマシンから,Linuxマシンいじれるわけですし,いまはそこらへんの
環境は結構いいですから。
まだ,高速計算の需要が自分にないからやらないけどそうなったら,計算
マシンはLinuxにします。たとえMatlab入れるにしてもそっちのほうが
いいはずだ。(ぜんぜんOctaveと関係なくてすみません)

524:名無しさん@お腹いっぱい。
08/05/18 13:08:33
試しに件のoregonatorを使ったベンチを走らせてみたら

Pen M 1.7GHzのマシンで

Cygwin版 2.1.73で
octave:1> bench1
ans = 5.84100
octave:2> bench1
ans = 5.74700

MSVC版 3.0.1で
octave:1> bench1
ans = 1.4141
octave:2> bench1
ans = 1.3178

全然違うものだな

525:octave for windowsメモの筆者
08/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メモの筆者
08/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:名無しさん@お腹いっぱい。
08/05/19 07:17:32
なるほど。個人的にはJhandleが気にいってますので、Mingw版でJhandle使えればなあという所です。
もっと理想ではSciLABのグラフィックエンジンの方がいいですけれど。
ATLASを使った最適化もここを見ると効果がありそうですが、大変そうです。
URLリンク(www.inaba-lab.org)

528:octave for windowsメモの筆者
08/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メモの筆者
08/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:名無しさん@お腹いっぱい。
08/05/19 11:48:40
我輩は猫である

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


532:名無しさん@お腹いっぱい。
08/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メモの筆者
08/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メモの筆者
08/05/19 16:41:50
>>532ですが
MSVC版はATLASが入ってるんですね
それで安心しました

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

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

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

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


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

Octave/Windows compiled with VS2008 available

URLリンク(www.cae.wisc.edu)

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

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

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


536:octave for windowsメモの筆者
08/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メモの筆者
08/05/23 18:05:01
>>535
置き場は下。
URLリンク(sourceforge.net)

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

538:524
08/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:名無しさん@お腹いっぱい。
08/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:名無しさん@お腹いっぱい。
08/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メモの筆者
08/05/27 18:18:06
>>539 >>540 まあそんなもんでしょう。MATLABはJITだからね。
私は,大体lsode使うときは,C++で関数書いて,
mkoctfile使って高速化します。
URLリンク(www.geocities.jp)

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

でもATLASの威力みたいなら
行列計算をしたほうがいいですよ。
URLリンク(adlib.rsch.tuis.ac.jp)



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

542:名無しさん@お腹いっぱい。
08/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:名無しさん@お腹いっぱい。
08/06/03 21:54:56
Vista Core2Duo T7500でMSVC 3.0.1を使っているんですが、直前にgnuplotで表示したグラフを

print -djpg graph.jpg

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

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

545:名無しさん@お腹いっぱい。
08/06/03 22:41:18
>>544
このページを読んでみて下さい
URLリンク(www.obihiro.ac.jp)

546:名無しさん@お腹いっぱい。
08/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メモの筆者
08/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メモの筆者
08/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:名無しさん@お腹いっぱい。
08/06/05 07:42:32
>>548
情報交換してるだけで、誰もあなたには頼ってないと思うよ
自意識過剰なんじゃない?

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


551:名無しさん@お腹いっぱい。
08/06/05 10:47:28
>>542
既に作者がbugだと認めております
URLリンク(www.nabble.com)

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メモの筆者
08/06/05 14:30:41
>>549 さん。すいません
>>550 さん。ありがとう,そのとおりです。

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

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


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

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


553:544
08/06/05 17:59:55
>>545
ありがとうございます。それで直りました。

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

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

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

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


556:名無しさん@お腹いっぱい。
08/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メモの筆者
08/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メモの筆者
08/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メモの筆者
08/06/07 17:50:12
>>556
gnuplotインストールしてますか。
gnuplotインストールしてあれば,gnuplotでprintすると思うんですが。
まあ,jhandle使わんのでよくわかりませんが,gnuplotだったらなんの
問題もないですよ。

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

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



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

562:名無しさん@お腹いっぱい。
08/06/09 07:06:06
-が足りない

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

564:名無しさん@お腹いっぱい。
08/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メモの筆者
08/06/18 19:25:40
cygwin公式版Octave 3.0.1がでた模様です。

566:名無しさん@お腹いっぱい。
08/06/18 19:30:14
>>563
?
URLリンク(oshiete1.goo.ne.jp)

567:名無しさん@お腹いっぱい。
08/06/18 19:50:26
file: filename.xls not found から進歩してるw

568:名無しさん@お腹いっぱい。
08/06/18 20:59:20
>>566それも俺っすww

569:名無しさん@お腹いっぱい。
08/06/19 10:38:48
>>568
URLリンク(ja.wikipedia.org)

570:名無しさん@お腹いっぱい。
08/07/07 01:48:19
VS2008版とそれ以外ってどっちがいいんだよ

571:名無しさん@お腹いっぱい。
08/07/07 08:07:55
過去レス読め

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

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


573:octave for windowsメモの筆者
08/07/07 13:50:08
そろそろBenjamin氏によるMingw版octaveも出そうです。


574:octave for windowsメモの筆者
08/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:名無しさん@お腹いっぱい。
08/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メモの筆者
08/07/15 11:46:30
ps=>pngの変換ならghostscriptを入れればcygwinなんていりませんよ。
gsviewもほしいですが。

URLリンク(auemath.aichi-edu.ac.jp)

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

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

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

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


578:名無しさん@お腹いっぱい。
08/07/20 10:09:23
Windows用Octave2.9.19はwormに感染しています!!
URLリンク(oshiete1.watch.impress.co.jp)

579:名無しさん@お腹いっぱい。
08/07/20 11:00:40
なんだと

580:名無しさん@お腹いっぱい。
08/07/20 11:59:42
>>578
それ以降のバージョンもアウトか?

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


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

583:octave for windowsメモの筆者
08/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の実験的な実装です。

URLリンク(sourceforge.net)

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

URLリンク(sourceforge.net)



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

585:名無しさん@お腹いっぱい。
08/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:名無しさん@お腹いっぱい。
08/07/30 22:44:04
MacOS用のgnuplotがいるってか?

587:名無しさん@お腹いっぱい。
08/08/03 22:18:48
使えねーここ・・・

588:名無しさん@お腹いっぱい。
08/08/05 22:31:30
net2comというのがあるらしい
URLリンク(sourceforge.net)

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

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

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

591:名無しさん@お腹いっぱい。
08/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メモの筆者
08/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メモの筆者
08/08/11 12:53:55
>>589
wsh使えば,多分tera termにコマンド流しこめるので,
octaveからsystem comand でwshのスクリプトを流しこめばいいのでは。

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


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


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



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

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

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

598:名無しさん@お腹いっぱい
08/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メモの筆者
08/08/13 10:44:17
>>598
もちろん3番です。悩むまでもありません。
octaveのplot系のコマンドは,sophisiticated されたコマンドですが,スピードがとろい,細かい設定が無理または却って面倒です。

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


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



601:octave for windowsメモの筆者
08/08/13 15:28:27
octave for windowsメモ
URLリンク(www.tatsuromatsuoka.com)

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

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


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



604:octave for windowsメモの筆者
08/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:名無しさん@お腹いっぱい。
08/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メモの筆者
08/08/18 12:47:23
>>605 なるほど勘違いしていました。すねわち,forgeにsocket機能がある
からNet2comを使用して,socket機能で通信しようというわけですね。
自分の書いたレスが恥ずかしい。 まっ,いっか勉強になったし。ありがとう
ございます。


607:名無しさん@お腹いっぱい。
08/08/18 19:13:18
>>606
ここの一番下の方にOctaveでのSocketの使用例があります
URLリンク(www.nabble.com)
(しかしドキュメント少なすぎ)

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

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

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



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


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

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

現在は octave workshop を用いて、

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

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


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

Gnuplot Q&A 掲示板
URLリンク(ayapin.film.s.dendai.ac.jp)


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

URLリンク(www.gnu.org)


614:octave for windowsメモの筆者
08/08/25 08:48:37
新しいOctave-Forgeがリリースされました。
URLリンク(www-old.cae.wisc.edu)

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

615:名無しさん@お腹いっぱい。
08/08/25 20:50:52
いつも乙です >> 中の人

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

617:octave for windowsメモの筆者
08/08/27 12:28:38
>>615 こちらこそ乙です。


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

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

620:octave for windowsメモの筆者
08/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メモの筆者
08/09/01 17:41:14
Octave 3.0.2 + forge 20080831 on cygwin (by gcc-dw2)をリリースしました。

URLリンク(www.tatsuromatsuoka.com)

です。

622:名無しさん@お腹いっぱい。
08/09/02 02:51:50
>621
あんたみたいになるにはc言語を勉強するの?

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

624:octave for windowsメモの筆者
08/09/02 09:17:27
>>623 >>602>>622の間違いです。すいません。

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

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

626:octave for windowsメモの筆者
08/09/04 18:27:27
Octave 3.0.2 + forge 20080831 on cygwin (by gcc-dw2)の
パッケージミスの修正とforgeのftp-1.0.1をビルドしたので
これをあわせたパッケージと差分をアップロードしてます。

URLリンク(www.tatsuromatsuoka.com)

627:octave for windowsメモの筆者
08/09/04 18:32:28
>>625 すみません。MSVC 版ならとGraphic backendがgnuplotかjhandleか
他のものならば,OSの種類とかgnuplotのバージョンとか明記しないと解答はつかないと思います。


628:625
08/09/04 22:46:19
>>627
ご丁寧にありがとうございます。
聞く側としての初歩的な所を忘れていました。
現在、OctaveはMSVC版3.0.1を使用。
graphic backendはgnuplotで、バージョンは4.2になります。
ちなみにOSはXPのSP3です。

上記のバージョンのoctaveにて、
どうすればgnuplotで言う所の、
「plot ~with impulse」
の様な表示が出来るのでしょうか。

以前使っていたバージョン(windows版octave2.173)では、
plot (~,"^")と入力をしたら出来ていたのですが、
現在のバージョンで同様に入力をすると、
三角マークが列をなしてしまいました。

ご教授、よろしくお願いいたします。

629:octave for windowsメモの筆者
08/09/05 09:02:23
>>628 ウーム。どうやらバグですな。
help plotで表示すると

`^'
Set impulses plot style.
ってでてくるし,Cygwin版でも同じ症状ですね。
いまから,本家に報告します。


630:octave for windowsメモの筆者
08/09/05 09:17:48
>>629

URLリンク(www-old.cae.wisc.edu)

本家bug@octave,orgにあげときました。お待ちください。


631:octave for windowsメモの筆者
08/09/05 10:31:06
>>630
どうもhelp,manualのミスでstemというのを使うらしい。

URLリンク(www-old.cae.wisc.edu)

詳しくは,help stemかマニュアルを見てください。


632:名無しさん@お腹いっぱい。
08/09/05 21:55:26
>>631
先ほどstemで実行をしてみた所、
エラーこそ出ますが、なんとか表示されました。
ここの辺りは自分のプログラムと、helpを参照しながら
解消していこうと思います。ありがとうございました^^

633:名無しさん@お腹いっぱい。
08/09/06 18:56:48
良かったね^^

634:octave for windowsメモの筆者
08/09/16 12:57:12
gcc-4.3.2-1(dw2 例外処理)によるcygwin octave3.0.2-2が
Marco Atzeriさんのサイトより手に入るそうです。
私もまだ試していません。

URLリンク(matzeri.altervista.org)

635:octave for windowsメモの筆者
08/09/16 15:26:46
>>634
testしました。動作確認しました。
URLリンク(www-old.cae.wisc.edu)

ということで私のgcc-3.4.4-dw2によるoctaveの配布は役割を終えました。
まもなくページは封鎖します。
少し寂しい気もしますが,Cygwin上のOctaveはこれですっきりするでしょう。
ただし,gnuplotは4.3(cvs)でないとマウスズームが使えません。
したがって,gnuplotは4.3(cvs)を配布することにしました。

URLリンク(www.tatsuromatsuoka.com)

636:octave for windowsメモの筆者
08/09/17 16:12:00
うーん。cygwin版は3.0.2版は出たのですが,
msvc版は3.0.2はMichaelさんはスキップするのかな?
BenjaminさんのMINGW版は,いつになったら出るんだろう。
彼は慎重派だからな。
で, Windows Native版3.0.2は,どうなるんだろう
と思っています。

それでmingwの3.0.2のあるんですが,BenjaminさんのMINGW版がでるんならと
出していませんが,興味のあるかたいますか。一人でもいたら,私のページ
にあげますが。


637:octave for windowsメモの筆者
08/09/18 12:10:15
>>634
Octave 3.0.2-2 on cygwinがcygwin setupからでもinstall
できるようになりました。

URLリンク(cygwin.com)

でもforge20080831-2はインストールできないので手動となります。


638:octave for windowsメモの筆者
08/09/18 14:37:00
>>637 なんかHangしますね。しばらくは手動でインストールしてください。
一応報告したので解決すると思いますので手動インストールができない方は
対応するまでお待ちください。

639:octave for windowsメモの筆者
08/09/19 17:53:15
>>636
Michaelさんに確認したところ,MSVC版のoctaveは3.0.2はスキップ
するそうです。

あまり時間をおかずに Jaroslavさんが3.0.3を出しそうないきおいですからね。

640:octave for windowsメモの筆者
08/09/22 08:47:48
>>638 一部あちらのミスもありましたが,私の思い違いでした。
experimental versionha expのボタンをアクティブにしてインストール
するそうです。

URLリンク(cygwin.com)

641:名無しさん@お腹いっぱい。
08/09/24 17:49:01
>>640
expボタンを選ばなくても3.0.2-2を選び binところののチェックボタン
(□(四角))をチェックするのを忘れないようにすればいいようです。


642:octave for windowsメモの筆者
08/09/29 09:22:42
maintainers向けに3.0.3のプレリリースがありました。
各maintainerも確認したところです。
ただし,マイナーチェンジなため各バイナリーが出るかは分かりません。
MSVC版は3.0.2をスキップしたため3.0.3の準備をミカエルさんがされている
ようです。


643:名無しさん@お腹いっぱい。
08/09/29 11:24:48
初めて立ち寄りました。

場違いですが、matlabにオイラー法を使えるコマンドはないのでしょうか?

644:octave for windowsメモの筆者
08/09/30 18:35:06
>>643
なぜまたオイラー法が必要なんでしょう。
MATLABには
ODE45などのルンゲクッタ法の発展型の優れた関数があるのに。



以下はOctaveでしか動きませんが,
ODEの解法の原理として講義で使ったものです。
関数を引数として受けるやり方は良く分かりませんが。
% Octave script m file
% Eulerのテスト
1; %dummy
% ****** Definition of a function
function dy=f(y,t); dy=-y; end

% ******* Main script
t0=0; tend=5; N=100; %t0 初期値,tend 範囲の終わり, N 間隔の数(点の数は,N+1)
t=linspace(t0,tend,N+1); % tの配列を定義
dt=(tend-t0)/N; % tの刻み幅
y(1)=1; % yの初期値
%
for n=1:N
y(n+1)=y(n) + f(y(n),t(n))*dt;
end
%
plot(t,exp(-t), "", t, y, "@");


645:名無しさん@お腹いっぱい。
08/10/02 12:10:19
スレリンク(tech板:123番)

646:名無しさん@お腹いっぱい。
08/10/02 12:46:32
あれなんかリンク貼ってある。
>>645じゃないですけど、リンク先の質問したものです。
インテルコンパイラでのコンパイルはどのように行うのでしょうか?

647:octave for windowsメモの筆者
08/10/02 13:44:52
自分でOctaveをintel complierでビルドする必要があります。
そういう方はLinux userには多いですね。

本家のMLで検索して調べてください。(Nabbleサーチが便利です。)

日本でもやっている方はいるとおもうんですが,ここを見ておられるかと
いうとそういう猛者の方は英語のMLを参考にされていると考えたほうが
いいとおもいます。
がんばってください。


648:646
08/10/02 14:01:01
>>647
"intel compiler"で検索してみたら結構な数がでてきたのでちょっと読んでみます。
アドバイスありがとうございます。

649:octave for windowsメモの筆者
08/10/02 16:40:37
Mingw版の正規版のOctave-3.0.2がリリースされました。

URLリンク(sourceforge.net)

からダウンロードできます。
gnuplotは4.3cvsリリースをpguplotとして使っているようなので
Michaelさんのものと違いマウスズームが効くとおもいます。

週末試してから私のWebには,リリースニュースとしてあげようとおもいます。


650:octave for windowsメモの筆者
08/10/06 08:46:06
Octave 3.0.3 のソースが公開されました

URLリンク(artax.karlin.mff.cuni.cz)

Octave の公式ページには,そのうち公開されるでしょう。基本的にはバグフィックスが中心です。Michael氏はおそらく この3.0.3でMSVC版のUpdateをするのではと踏んでいます。

651:名無しさん@お腹いっぱい。
08/10/07 00:28:21
( ゙゚'ω゚')モマママ…マジで!?

スレリンク(kao板)

652:octave for windowsメモの筆者
08/10/10 18:15:52
>>650
読みどおりMSVC Ver.3.0.3はまもなく出るようです。

URLリンク(sourceforge.net)

653:名無しさん@お腹いっぱい。
08/10/18 00:33:36
スレの皆様に質問があります。

MSVC版を愛用しているものです。
私の目的では32bitだとメモリが少なすぎるように感じています。
64bit windowsではMSVC走りますか?
それよりもunixに移行するのが手っ取り早いのでしょうか。
64bitを使う上で気をつけたほうがいいことなどありましたら
教えてください。
(Matlabを買うというのが一番だとは思うのですが)

654:octave for windowsメモの筆者
08/10/20 08:14:00
octdevスレッドに同様の質問があり,MicahelさんとBenjaminさんが答えてます。

ただし,このスレッドは他のTopicと混じってますので,
Status of Windows 64-bit support? のタイトルの記事を見てください。

自分でコンパイルしろ書いてあります。
LInuxでも64bitでは自分でビルドする必要があると思います。
ただし,自分でビルドする手間は,windowsよりLinuxの方が簡単かとおもいます。



URLリンク(sourceforge.net)

655:船木康博
08/10/20 08:22:56
信濃の国でも伊那方面は、有線でxDSLを最初にやったりさぁ、
無線じゃあ一昔前に妖怪がネット組んでいるのさ。おもしれぇぞ。

656:名無しさん@お腹いっぱい。
08/11/02 19:24:11
>>654

ありがとうございます。急に立て込んでしまって、まだ試せていません。
とりあえずお礼まで。

657:octave初心者
08/11/08 09:50:11
cygwinからoctaveをインストールして、imageパッケージを入れて
画像処理を行いたいのですが、imreadするところで下記エラーが出力されて
画像を読み込むことができません。
(ImageMagickもcygwinからインストールしました)

im=imread('im1.bmp');

convert: unable to open image `/cygwin/tmp/oct-22d688.0.ppm': No such file
or directory.
error: imread: error running ImageMagick's 'convert'
error: evaluating if command near line 113, column 5
error: called from `imread' in file
`/home/tosiyuki/octave/image-1.0.8/imread.m'
error: evaluating assignment expression near line 1, column 5

どなたか解決方法を教えてもらえませんか?

658:octave for windowsメモの筆者
08/11/13 07:59:52
Macroさんに教えてもらいました。

Hi Tatsuro,

it is not a fault of image.

I don't know for wich reason on cygwinthe TMPDIR enviroment is set to C:/CYGWIN/TMP instead of /TMP

see src/sysdep.cc call to cygwin32_conv_to_full_win32_path

Probably is for old compatibility with non cygwin programs, but it confuse cygwin programs likeconvert of ImageMagick.

As workound is possible to

setenv ("TMPDIR","/tmp")
before
im=imread('im1.bmp');


I will try to remove the issue on the next octave cygwin release.

659:659
08/11/22 15:24:37
はじめまして。
windowsVistaで、スタンドアローンoctaveを使おうとしています。
使いたいのは画像処理のpackage内のedge.mです。

image packageをインストールまでしたのですが、
edge("***.jpg", 'canny', [0 7], 1.6);などしても
error: nonmax_supress underined...と言われ、エラー箇所を見ると
bw = nonmax_supress(Es, Eo, thresh(1), thresh(2));とありました。
nonmax_supress()は関数のようですが、これが見あたらないようです。
どうすればいいのでしょうか?
(cannyを使わないでprewittを使うと動作が確認できました。BW = edge(I,'prewitt'))

660:659
08/11/22 15:25:51
UNIX板なのですが、octaveに関する場所がここしかないので、
ここで聞かせていただきました。場所違いでしたらすみません。

661:659
08/11/22 15:33:46
nonmax_supress()はCanny専用の関数のようです。
なぜ読み込まれていない(または組み込まれていない)のでしょう?
URLリンク(octave.sourceforge.net)

662:659
08/11/22 15:48:16
URLリンク(octave.svn.sourceforge.net)
を見るとnonmax_supress()はC++で書かれていて、
それをoctaveで動的に利用できるようです(URLリンク(www.obihiro.ac.jp))。

C++のソースコードは公開されているので、
それをコピーして手動でoctaveでコンパイルして、
nonmax_supress()を持っておけばいいのだと思うのですが。。。

663:octave for windowsメモの筆者
08/11/25 09:34:43
>>659
image packageは自分で使わないのでよく分かりません
つい最近,octave-3.0.3 (MSVC)がでたのでとりあえずそれを使って
試してください。だめならhelp@octave.orgに投稿します。

URLリンク(sourceforge.net)




664:名無しさん@お腹いっぱい。
08/11/25 13:47:04
>>309
Octave3.01では
wavread.m, wavwrite.m は不要
sound.m の中身を一行
system("wavplay \"%s\"", wavefile);
とダブルクォーテーションに変えてやる必要がある。

検索してたどり着く人用コメントでした

665:octave for windowsメモの筆者
08/11/25 18:47:19
>>659
文法違いませんか。
以下のように使うのでは,edgeの第一引数はMxNの
グレースケールの行列のはずでファイル名ではないですよ。

help imread,help edge でhelpを読みましょう。

octave:2> IM=imread('test.jpg');
octave:3> image(IM);
octave:4> BM=edge(IM(:,:,1),'Canny');
octave:5> image(BM);

666:octave for windowsメモの筆者
08/11/25 19:04:32
>>665
すみませんm(__)m。書き方が刺々しいですね。
反省m(__)m。





667:名無しさん@お腹いっぱい。
08/12/06 01:09:30
(;'ー`)FreeBSDのportsにあるoctaveのコンパイルオプションに-ffast-mathつけるのやめてくれ

668:名無しさん@お腹いっぱい。
08/12/06 10:56:47
理由があるならそれ書いて send-pr しれ

669:octave for windowsメモの筆者
08/12/07 14:34:16
>>666 確かに変ですね。いつか本家で聞いてみます。

670:octave for windowsメモの筆者
08/12/07 14:37:22
さっきのは>>667>>668の間違い。m(__)m

671:octave for windowsメモの筆者
08/12/08 13:10:45
>>667 >>668
いま,octaveのMLできいていますが,FreeBSDで聞けといわれたらすみませんが
自分でFreeBSDの方で聞いてください。m(__)m

672:名無しさん@お腹いっぱい。
08/12/08 15:27:43
あ,668 の人だけど >668 は >667 宛てね
(FreeBSD 事情なら >668 ということで)

673:octave for windowsメモの筆者
08/12/08 18:35:09
Octave MLより
3.0.4 call for patches (Jaroslav Hajek-2 Dec 08, 2008; 03:49pm)

URLリンク(www.nabble.com)

ということでOctave-3.0.4のリリースの準備が始まりました。

674:octave for windowsメモの筆者
08/12/09 09:51:01
>>667

最初の書き込みがいけなかったため,該当する返事はまだ得られていません。
(-ffast-mathオプションが使えるかという風にとられたため。
違う趣旨の返事しか来てません。再度趣旨を訂正しましたがこれまでのところ
答えはついていません)

では,
URLリンク(www.nabble.com)


675:octave for windowsメモの筆者
08/12/10 13:28:53
>>668
--- John W. Eaton wrote:
> I think you should ask the people who packaged Octave for FreeBSD.
>
> Based on the description in the GCC manual, I would generally
> recommend against using -ffast-math.
>
> jwe

ということで,FreeBSDで聞いてくださいとのこと。m(__)m
jwe氏もagainstと書いている通り,おすすめしないといっておられます。
-ffast-mathなんでついてるのかな。

676:名無しさん@お腹いっぱい。
08/12/12 03:34:33
(;'ー`)つーか、-ffast-math付けると計算をはしょるから意図しない答えになることがある

677:octave for windowsメモの筆者
08/12/12 09:58:45
>>676
なるほどそうなんですか。私はJaroslav Hajekさんが書かれたことぐらいしか
知らないですが。どちらにしろつけるのは,変ですよね。

678:名無しさん@お腹いっぱい。
08/12/12 10:50:43
portsのMakefileには-ffast-mathついてないんだけど、
/etc/make.confに自分で書いてないかな?


679:octave for windowsメモの筆者
08/12/12 14:57:09
まあ,私が書き込んだことでoctaveのhelpとmaintainersのMLに残るのでFreeBSD
portsを使っている方へのアナウンスにはなっているわけでだし
あとはFreeBSD のportsをメンテされてる方がどう考えているかですよね。
ところでmkoctfile -vで出てくるg++でのコンパイルの表示に
-ffast-mathついてますか?
基本的にはconfigureで指定したoptionがついてますけどね。

680:名無しさん@お腹いっぱい。
08/12/12 20:02:11
(;'ー`)うわっ、ごめんよ!
FreeBSDのportsに-ffast-mathついてるのはmath/atlasだったよ

681:octave for windowsの筆者
08/12/14 12:32:14
>>680 了解。上にあげときます。

682:octave for windowsメモの筆者
08/12/15 11:52:18
>>680 上に報告しときました。

683:名無しさん@お腹いっぱい。
09/01/08 16:48:40
誰かovtaveで区分求積法を使って積分の計算をやってる例とか貼ってくれない?

684:octave for windowsメモの筆者
09/01/08 19:29:46
>>683
区分求積って台形公式でいいんでしょうか。
I = trapz (Y) ;
I = trapz (X,Y);
台形公式法(trapezodial method)による,数値積分をする関数。X,Yはともにベクトルであり,引数がYだけ時はX軸の間隔が1であるとしてyの台形の面積の和をとる。通常は,X,Yの両変数を指定し,和をとる。


685:octave for windowsメモの筆者
09/01/08 19:30:25
octave> format long
octave> x=linspace(0,pi,100+1);
octave> I=trapz(x,sin(x))
I = 1.99983550388744
octave> x=linspace(0,pi,200+1);
octave> I=trapz(x,sin(x))
I = 1.99995887647922
octave> x=linspace(0,pi,1000+1);
octave> I=trapz(x,sin(x))
I = 1.99999835506566



686:octave for windowsメモの筆者
09/01/08 19:32:58
精度が必要な時は,適応的自動積分のquadを使ってください。

687:octave for windowsメモの筆者
09/01/08 19:36:22
[v, ier, nfun, err] = quad (f, a, b, tol, sing)

Quadpackという積分パッケージに収録された適応的自動積分の関数。
第1引数は,被積分関数の名前で関数は,
y = f (x)
の形を持ち,xとyは、スカラーである。第2,第3引数は,積分範囲であり,-無限大や+無限大を片側または両方に指定できる。Octaveで無限大は,infまたはInfであらわす。
第4引数のtol は,ベクトルであり,第一要素は,要求したい精度の絶対値である。第二要素は,相対許容度である。
第5引数のsingは,ベクトルで被積分関数が特異点となる独立変数の値からなり,必要に応じて指定する。
第4,第5引数は,オプション引数なので省略は可能である。
左辺にvは,積分結果の値(関数の返り値)。ierはエラーコードで0は,積分の成功を意味する。nfunは関数の評価回数でと積分の困難さの指標になる。Errは,積分結果の評価誤差である。



688:octave for windowsメモの筆者
09/01/08 19:37:13
octave> format long
octave> function y=f(x);y=1./sqrt(1-x.^2);end;
octave> [v, ier, nfun, err] = quad (@f,0,1)
v = 1.57079632679489
ier = 0
nfun = 315
err = 5.44135847491134e-011
octave> pi/2
ans = 1.57079632679490



689:名無しさん@お腹いっぱい。
09/01/09 03:56:42
『octave for windowsメモの筆者』さんすごい!素敵です!

690:名無しさん@お腹いっぱい。
09/01/09 16:31:09
>>683ですが、貼ってくれた方ありがとうございます!

691:octave for windowsメモの筆者
09/01/09 16:57:46
>>689 >>690

大学の講義で使っている資料の一部を貼りました。
著作権の問題があり公開はしていませんが,
著作権問題がない部分については公開したほうがいいですかね。

ちょっと手間がかかるので要望あればぼちぼちやります。




692:名無しさん@お腹いっぱい。
09/01/16 16:35:33
大学の宿題で「観測値と予測値をプロットするoctaveのプログラムを示しなさい。」
っていう問題が出たんですけど授業を聞いてないボクにはさっぱりです・・・。。
誰か教えてくれませんか?

693:名無しさん@お腹いっぱい。
09/01/16 16:52:59
ノート買えばいいじゃん

694:octave for windowsメモの筆者
09/01/16 18:26:40
Octave 3.0.4のテストリリースのソースのリリースがありました。
しばらく,すれば3.0.4が出ることになります。

URLリンク(www.nabble.com)

695:octave for windowsメモの筆者
09/01/16 18:39:20
>>692 まあ,>>693さんがいっているように授業受けた人に聞きましょう。

↓に私の講義資料で著作権に関係のない部分をのせといたからこれでも読んで勉強しなさい。

URLリンク(www.tatsuromatsuoka.com)

696:名無しさん@お腹いっぱい。
09/01/16 22:36:07
予測値ってのはもう用意されてるのかね
予測手法も適切に選択するまでが課題だったら随分大雑把で困難な宿題だ

697:名無しさん@お腹いっぱい。
09/01/17 03:41:12
すいません。
勉強します・・・。

698:名無しさん@お腹いっぱい。
09/01/26 02:16:03
質問させてください。

cos(pi*90/180)

を実行すると

6.1232e-17

というネイピア数で表示されてしまうのですが、これを0と表示させるにはどうすれば良いのでしょうか?

699:名無しさん@お腹いっぱい。
09/01/26 08:55:39
つ round

700:名無しさん@お腹いっぱい。
09/01/26 10:33:35
ところでネイピア数は0.271828...e-1だが?

701:名無しさん@お腹いっぱい。
09/01/26 10:38:31
じゃない、0.271828...e1 だ

というか質問の意味がいまわかった。

そのeはネイピア数じゃなくて、浮動小数点数の10のべき乗表記で、
6.1232 × 10 ^ -17
じゃまいか?

702:名無しさん@お腹いっぱい。
09/01/26 13:03:46
>>699

roundで丸めるのではなく、不動小数点の10のベキ乗表記を小数点第何位までにするかという設定(要するに0の極限値の設定方法)があった気がしたので、そのやり方がわからないのです。

>>701

ネイピア数の定義がよくわかってなくてすみませんでした。
おっしゃるとおり6.1232 × 10 ^ -17です。

703:octave for windowsメモの筆者
09/01/26 19:31:40
octave3.0.4のソースのRC2が出ました。

URLリンク(www-old.cae.wisc.edu)

octave3.0.4ももうじきです。
一応3.0シリーズのラストと位置づけられているようで,
octave 3.2シリーズの準備がoctave 3.1で行われています。

704:octave for windowsメモの筆者
09/01/27 08:36:09
>>703
しかし,3.0になるときも,次は3.0とでながらかなり細かいバージョンアップを続けた経緯があるのでどうなるかは。分かりませんが。

705:octave for windowsメモの筆者
09/01/28 07:54:39
cygwin版のoctave-3.0.3がでました。ただし,パッケージングミスがあり,
mkoctfileが動きません。/usr/lib/octaveのlibctave.dll.a(oが抜けている)
をliboctave.dll.aにすれば動きました。報告をして,Macroさんが確認された
ので数日中にはfixされるでしょう。

706:名無しさん@お腹いっぱい。
09/02/01 00:21:14
output_precision=16って入力して表示桁数を変えようと思ったら,
output_precision is no longer a built-in variable
と出ました。
その後output_precition=16となりましたが数値の表示桁数が変わりませんでした。
どうすればよいのでしょうか

707:octave for windowsの筆者
09/02/01 18:03:15
>>706
output_precision(16)としてください。octaveはver3から殆この手のものは=ではなくて、()で設定します。

708:octave for windowsの筆者
09/02/01 18:05:12
>>706
output_precision(16)としてください。octaveはver3から殆この手のものは=ではなくて、()で設定します。


709:octave for windowsの筆者
09/02/01 18:05:36
>>706
output_precision(16)としてください。octaveはver3から殆この手のものは=ではなくて、()で設定します。


710:octave for windowsの筆者
09/02/01 18:06:06
>>706
output_precision(16)としてください。octaveはver3から殆この手のものは=ではなくて、()で設定します。


711:octave for windowsの筆者
09/02/01 18:08:53
携帯から書込みしたら重複投稿してしまいました。ごめんなさい。m(_ _)m

712:名無しさん@お腹いっぱい。
09/02/02 17:07:41
octaveでシミュレーションをやっているんですがどうしても下のようなエラーが出てしまいます
先生や先輩に聞いてもなぜかよくわからないというしまつ・・・orz
どなたか教えていただけないでしょうか?よろしくお願いします

octave:2> test2
error: invalid column index = 2001
error: evaluating binary operator `+' near line 72, column 28
error: evaluating assignment expression near line 72, column 17
error: evaluating for command near line 67, column 1
error: near line 73 of file `/home/soturon/test2.m'


ソース→URLリンク(www.uploda.org)

713:octave for windowsメモの筆者
09/02/03 10:48:16
712 ソースの場所に行ってみましたが見れませんでした^^;

714:名無しさん@お腹いっぱい。
09/02/03 10:54:34
めでたしめでたし

715:712
09/02/03 11:36:10
すいませんでした!
次こそ大丈夫なはずです

ソース→URLリンク(ultraup.net)
パス:test

716:名無しさん@お腹いっぱい。
09/02/03 12:25:39
>>715 Get Files Thank youとでますが,どこに落ちたかわからん。
サイトがサイトだけに,落ちないのかも,octave for windowsメモで
Googleれば私のサイトは見つかるのでそこのアドレスに添付で
送ってください。



717:名無しさん@お腹いっぱい。
09/02/03 12:26:31
>>715 Get Files Thank youとでますが,どこに落ちたかわからん。
サイトがサイトだけに,落ちないのかも,octave for windowsメモで
Googleれば私のサイトは見つかるのでそこのメアドに添付で
送ってください。



718:octave for windowsメモの筆者
09/02/03 12:28:23
>>716
m(__)m
そこのアドレス==>そこに記載のメールアドレス 

719:名無しさん@お腹いっぱい。
09/02/03 13:32:15
メール欄にsageと入れよう!

720:octave for windowsメモの筆者
09/02/03 13:40:12
>>719 入れましたがどのような意味で? おじさんはワカラナイ??

721:712
09/02/03 13:50:48
たびたび申し訳ないです><
メールで添付しときました!よろしくです

つーかアップローダーはどこがいいんだろ・・・
うpろだとか有名なとこはすぐ消えちゃうし

722:octave for windowsメモの筆者
09/02/03 14:06:50
>>721
メールとどきましたこれから見ます。

Uploaderではなく,Yahooのアカウントをお持ちなら,YahooのGeocitiesをフリーで
広告付きだけど50Mbyteのweb spaceを借りれますよ。
私は,自分のドメインと1Gbyteのスペースと持ちたいから
有料の契約してますが,普段使う分には50Mbyteあればいいでしょう。

723:名無しさん@お腹いっぱい。
09/02/03 14:13:21
>>722
Geocities?ブリーフケースのこと??

724:名無しさん@お腹いっぱい。
09/02/03 14:15:17
>>720
メール欄にsageと入れると書き込みをしてもスレッド一覧の最上位にいちいち浮上しません。
sageと入れないと一部の人からくどく思われる場合がありますので、普通はsageと入れます。
ちなみにsageは日本語の「下げ」をローマ字で書いたものです。他言語のsageの意味はありません。

725:octave for windowsメモの筆者
09/02/03 14:21:16
>>724 m(__)m ありがとうございます。

726:octave for windowsメモの筆者
09/02/03 14:22:03
>>724 m(__)m ありがとうございます。

727:octave for windowsメモの筆者
09/02/03 14:36:30
>>712 error: invalid column index = 2001ですね。

66行目 b(:,1)=[0;0];によって
octave:3> size(b)
ans 2 1
で1行2列の行列になってしまうわけです。

66行目 b=zeros(2,2001);
とすれば大丈夫です。
しかし,For Loopの塊ですね。
octaveでは,遅くなりますね。
漸化式likeなので
スパース行列を使えば高速化できるかも知れませんね。
URLリンク(www.nuce.nagoya-u.ac.jp)
偏微分方程式なのでまともにやったら2重ループなのですが,遅くなるので,
漸化式を係数行列にしてスパースを使って高速化してます。

古い資料なので,octaveのバージョンが古いですが,基本は同じから
参考にしてください。
でもいまのままでも,答えは少し待てば出るので,まあ,
現状でいいかもしれませんがこういうテクニックも
あることもしっておくといいですよ。



728:octave for windowsメモの筆者
09/02/03 14:41:57
>>723 ブリーフケースではありません。Webをおけるスペースです。
まあ,Yahooにいってみてください。
webがおけるのでファイルもおけて,
<html>
<a href='test2.m'>test2.m</a>
</html>
とでもして,index.htmlをつくり同じフォルダーに
test2.mをいれとけばいいです。



729:名無しさん@お腹いっぱい。
09/02/03 14:48:34
日本のyahooの利用規約では公開目的ではなく単にファイルを置くだけなのは禁止されているはず。
国内で利用するんだったらURLリンク(www.axfc.net)が良いかもしれないね。
流れてしまう速度はそんなに速くないはずだから。

730:octave for windowsメモの筆者
09/02/03 14:48:32
>>727 おっとこの講義資料の最後の回のものです。



731:名無しさん@お腹いっぱい。
09/02/03 14:55:26
ほんとループが長い!まだ回ってる・・・

>>728,>>729
つまりヤッホーのほうは利用しないで>>729のほうがいいってことですかね??
なにはともあれありがとうございます

>>730
是非拝見させていただきます

732:octave for windowsメモの筆者
09/02/03 15:07:17
>>729 あっとそうでしたね。

<html>
<body>
<P>数値計算ソフトのソースの例(octave)
<a href='test2.m'>test2.m</a>
</body>
</html>

とでもしとかなきゃだめでしたね。
こうすれば,一応公開目的なのでおけますよね。
ただし,パスワードがかけられませんからね。
まあ,見られてもいい(つまり公開)であればいいのですよね。



733:名無しさん@お腹いっぱい。
09/02/04 15:14:49
グラフを印刷する時、軸のラベルの文字の大きさを変えるのはどうするんですか?

print "hoge.eps" -deps -color -F:20

ってやると、目盛の数字は大きくなるけど、ラベルは小さい文字のままになりま
す。




734:octave for windowsメモの筆者
09/02/04 16:20:56
>>733
xlabel('{\fontsize{25} x}');

735:名無しさん@お腹いっぱい。
09/02/04 16:31:14
使ってるプロットツールによると思うんだけど
文字はそのままでグラフを小さく出力すると印刷時には相対的に文字が大きくなる
例えば俺はgnuplot使ってるから
__gnuplot_set__ size 0.4 0.4;
とかやって全体的に文字サイズを変えてしまうのはどうだろう

736:octave for windowsメモの筆者
09/02/04 16:40:56
__gnuplot_set__ size 0.4 0.4;
この設定は3.0からは使えません。

URLリンク(www.gnu.org) following plot commands are now considered obsolete and will be removed from a future version of Octave:

__gnuplot_set__
__gnuplot_show__
__gnuplot_plot__
__gnuplot_splot__
__gnuplot_replot__
Additionally, these functions no longer have any effect on plots created with the Matlab-style plot commands (plot, line, mesh, semilogx, etc.).html より


The following plot commands are now considered obsolete and will be removed from a future version of Octave:
__gnuplot_set__
__gnuplot_show__
__gnuplot_plot__
__gnuplot_splot__
__gnuplot_replot__
Additionally, these functions no longer have any effect on plots created with the Matlab-style plot commands (plot, line, mesh, semilogx, etc.).


737:octave for windowsメモの筆者
09/02/04 16:49:14
>>736 すいません。m(__)m。また,確認ミス。
とろろで「この設定は3.0からは使えません。」は使えませんはうそで,
正しくは,plot関数などによるplotには影響せず,__gnuplot_set__などは
あくまでも,別のルーチンでgnuplotのコマンドをダイレクトに使用する描画
にのみ影響する。

が正しいです。

といいのは,octaveの次のバージョンから独自のgraphicsエンジンを
使うという構想があり,このようのgnuplotの直接命令は,plotなどの
関数に影響を与えないように変更されています。


738:名無しさん@お腹いっぱい。
09/02/04 17:27:26
今プログラムを作ってるんですが下のようなエラーがどうしても消えません
どこがおかしいのでしょうか?

error: invalid column index = 0
error: evaluating binary operator `*' near line 35, column 14
error: evaluating binary operator `+' near line 35, column 12
error: evaluating assignment expression near line 35, column 4
error: evaluating for command near line 33, column 2
error: evaluating for command near line 29, column 1
error: near line 42 of file `/home/tse550u/soturon/ndynamicsg.m'


ソース:URLリンク(www1.axfc.net)


739:名無しさん@お腹いっぱい。
09/02/04 17:29:18
すいません、>>738のやつパスはdwです

740:名無しさん@お腹いっぱい。
09/02/04 17:35:28
新しいOctave入ってるPCで見てみたらマジだ
昔gset sizeでやってた頃に「これは使えなくなるから__gnuplot_set__ でやれ」
ってOctaveに怒られた時からいつかこうなるとは思ってたけど

741:octave for windowsメモの筆者
09/02/04 18:00:14
>>738
error: invalid column index = 0
が怪しい。行列やベクトルは最初に現れたsizeで初期化されますから,
sizeを指定したいときは,
A=zeros(N,M);
などであらかじめ指定してください。



742:octave for windowsメモの筆者
09/02/04 18:06:08
>>740
今は,JhandleというMATLABそっくりな図を描くグラフィックバックエンドも
ありますしね。MATLAB互換路線になっていますから,まあ仕方ないでしょう。
私は,データ吐き出して,
gnuplotで直接図描きますから関係あまりないのですが^^;。

ところで,jhandleは,epsはファイル形式は,postscriptのみだったと
思います。
emfなどはpstoeditをつかって変換するしかないでしょう。

743:octave for windowsメモの筆者
09/02/05 09:44:33
>>741 error: invalid column index = 0
おっと octaveはindexが1から始まるからでたエラーですねm(__)m。

744:名無しさん@お腹いっぱい。
09/02/05 18:07:53
>>734-737 ありがとうございました。

自前のグラフィックスですかあ。私はgnuplotが結構好きなんで、微妙だなあ。
なんかOctave全体が重くなるのもいやだし。

745:名無しさん@お腹いっぱい。
09/02/06 10:43:06
筆者さん、Octaveの授業もやってるんですね。わたしも筆者さんと同じ分野の人
間です。授業でOctave使おうとしたことがあるんですが、他の教員から「そんな
ブラックボックス使わせても教育にならん」と反対されました。かといって、現
行の授業でやってるようにC言語だと、病的な文法の瑣末なところで引っ掛る学生
がいっぱいいて、シミュレーションそのものを体感させるところまで行かないん
ですよね。

"プログラミング演習"の例題をOctaveで解かせるのは、研究室の学生にさせたこ
とがあります。"プログラミング演習"は過去におそらく3種類出版されているかと
思いますが、わたしは80 年代末に出たBasic版が一番のお気に入りでした。基本
算法の解説が一番詳しかったように記憶しています。現在はFORTRAN版もBasic版
も入手困難なようですね。FORTRAN版は手元にあるんですが、BASIC版はどっか行っ
ちゃいましたorz。今出まわってる改訂版は、うーん、解説は適当だし、Cと
FORTRAN両方のコード載せるのも場所の無駄だし、おまけに今時FORTRAN77だし。





746:名無しさん@お腹いっぱい。
09/02/06 11:12:37
いきなりOctaveやらせると感動がないじゃん
「スゲーこの言語スゲー!!俺こんなに手抜いちゃって良いの?」
っていう感じで

747:名無しさん@お腹いっぱい。
09/02/06 13:12:13
FORTRANでもいいんじゃね

748:名無しさん@お腹いっぱい。
09/02/06 13:26:18
Matlab/Octaveの醍醐味は初級プログラミングのレベルではなくて
普通にループを回すと何時間も何日もかかるループ処理が
行列演算で1発で出るという所なので
Excelで済む程度のデータなら必要無いでしょうね

逆に例えばモンテカルロ計算なんかだと、
一般的なプログラムではループ10万回ぐらい回して
そのループの中で乱数を発生させて、関数に入れて結果を見る事になりますが

Matlab/Octaveでは最初に、10万個の乱数配列を作り
行列演算化した関数に入れて1発で結果が出るみたいな感じなので
発想を根本的に変えないといけません

749:octave for windowsメモの筆者
09/02/06 18:05:40
>>748
そうですね。いかに,行列で問題を記述するかにかかってて,
偏微分の差分法の陰解法では良くガウスザイデル法とかつかいますが,
Octaveなら行列で方程式書いて左除算で済ませる。

係数行列は疎行列だからsparseを使って高速化するとか
発想が違いますよね。

まあ,ブラックボックスっいう方いますが,硬い微分方程式なんぞ
ルンゲクッタで解こうとすると大変で,lsode使うとあっという間に
解けますよね。

適応的自動積分でも同じだとおもいます。

シンプソン公式を自分でCで書いて使うような時代ではないと思ってます。

ブラップボックスでもいいから,数値計算ができることの意味を分からせる
のが大事だとおもいます。



750:octave for windowsメモの筆者
09/02/10 09:42:13
開発版octave 3.1.52がでました。
URLリンク(www.nabble.com)

Octaveの次のMajor Version Upはver 3.2であり,octave-3.1.xxは開発版です。
その3.1.52がでました。

gnuplotは一応defaultのgraphic backendでopenglによるgraphic backend
を機能させるためにはいろいろライブラリィが必要なようです。

詳しくは以下を
URLリンク(www.nabble.com)



751:名無しさん@お腹いっぱい。
09/02/10 11:39:01
そういえば新パソにFreeBSD7.1を入れて、
pkg_add -vr octave-devel
とインストールしたら
GNU Octave, version 3.1.51
でした。leasqrが入って無いのでoctave-forge-optimを入れてないような気がする。
バージョンごとに何が良くなったのか、見えにくいのが何とも…

そういえば、何語なのかわからないけど(チェコ語?)
Octave/Matlabのグラフィックスの例題があります
URLリンク(enacit1.epfl.ch)
gnuplotは置いておいて、jhandleならかなりMatlabに近い事が出来ました

752:octave for windowsメモの筆者
09/02/10 14:57:02
>>751 3.1.xx はdevelopment branchなので,octave-forgeは多分
自分でpkg installで行う必要があると思います。
しかも,octave-forgeは3.0.x用に作られているので結構苦労する可能性は
あると思います。

一般的なものは3.0.xxです。現在3.0.3が,最新版で3.0.4はもうすぐ出るのだと
思います。

(独り言)3.0.4RC3が出てからだいぶたつけど,いつになったら3.0.4の
正式リリース出るんだろう。



753:名無しさん@お腹いっぱい。
09/02/10 15:52:50
>>752
その後に、octave-forge-optimを入れたらOctave 3.0.2に上書きされました

754:octave for windowsメモの筆者
09/02/12 07:59:06
>>753 3.0.2でいいと思いますよ。

755:名無しさん@お腹いっぱい。
09/02/14 23:15:47
ここを見て気になったので試してみました
URLリンク(hiyokoz.blogspot.com)
ベンチの内容は
n=2000; A=randn(n); B=randn(n);tic; C=A*B; t=toc, MFLOPS=2*n^3/t*1e-6
だけ
内容は2000の大きさの乱数配列を2個用意してベクトル積するだけです

手持ちの機種で比べると
Intel Core2Duo 2.1GHz, WinXP
 MSVC, Octave 3.0.1  2.05 GFLOPS 
 Cygwin, Octave 3.0.3  0.99 GFLOPS
Intel Pentium M 1.6GHz, WinXP
 MSVC, Octave 3.0.0  0.81 GFLOPS 
 Cygwin, Octave 3.0.3  0.18 GFLOPS
Intel Atom N270 1.6GHz, FreeBSD 7.1
 FreeBSD Octave 3.0.2 0.17 GFLOPS

PenMとAtomマシンに対してCで書かれた一般的なベンチ(Flops-2.0)で試すと
どちらも0.18GFlopsなので、同じクロックのPenMとAtomは同じ程度の
浮動小数点演算能力を持っていると考えられます。

問題はそのページに載ってる
MacBook (Core Duo 1.83 GHz): 約 3 Gflops
iMac (Core 2 Duo 2.4 GHz): 約 12.5 Gflops
Mac Pro (Xeon 3 GHz クアッドコア×2): 約 50 Gflops

という結果です。私の結果では Core2Duo 2.1GHz はMSVC版でも2GFLOPSでしたが
iMacの結果は2.4GHzとほぼクロックが同じにもかかわらず12.5GFLOPという
圧倒的なパフォーマンスです。Octaveを使うのならMacで決まりでしょうか

756:octave for windowsの筆者
09/02/15 07:06:09
>>755

そうですか。ところでMSVC版はsse2でしょうか。Genericでしょうか?。

GenericだとATLAS使わないので。

MacOSはunixというのもあるかもしれません。


757:名無しさん@お腹いっぱい。
09/02/15 09:48:41
>>756
それはもちろん、PenMはSSE2、Core2DuoはSSE3でインストールしてます
ATLASを使っても、この程度という事はロハで出来る範囲はこの程度なのでしょう

その元のブログには
>g95はOpenMPに対応していないが,アクティビティモニタを見るとCPUは二つとも動いているので,
>スレッド化されているようだ.おそらく,Mac OS XのAccelerate.frameworkに含まれている
>BLAS/LAPACKが呼ばれていて,Fortranコンパイラは無関係だと思われる.

と書いてありますから、ATLASとAccelerate.frameworkの差だと思われます
Windowsで同様の事は出来ないのか?というと一応MKLがあります
URLリンク(sourceforge.jp)
>今回使用したテストプログラムは500×500の行列同士の乗算を100回繰り返すというもの
>MKL    1.903秒
>ATLAS  3.895秒
>BLAS  16.120秒

マルチスレッドが効き2コア演算が有効になるためATLASに比べて約半分の時間で計算出来ますが
恐らく「GNU」Octaveで使うのは無理でしょう。
なので、値段もさして変わらないのならMacを選んじゃった方がいい可能性もあります。

758:octave for windowsの筆者
09/02/15 17:12:20
>>757
Accelator.frameworkのページみました。

なるほど、こりゃMacのほうがいいですね。
今度、買うならMacにしよう。

ありがとうございますm(__)m


759:octave for windowsの筆者
09/02/15 20:12:45
良く見るとCore2Duo用にのATLASも最適化出来るようですね。

MSVC版やMinGW版は、これは使っていないでしょうね。

でも、これを使ってもMacには叶わないでしょうね。

でも、差がどれくらいになるかは興味はありますね。

しかし、使おうにもかなりビルド大変ですしね。

私はCore2Duoマシン持ってないからなんともできないですが^^;


760:名無しさん@お腹いっぱい。
09/02/15 21:20:04
>>540
を見ると、
MATLABはMSVC版の3.5倍ぐらい速いようなので(MATLABはマルチスレッドに対応してる)
MSVCで2GFLOPSなら、MATLABで7GFLOPSぐらい出そうですが
Macはその倍近い12GFLOPSですし
MATLABの維持費を考えると、35万円ぐらいの8コアのMacPro買って
実効50GFLOPSもいいかもしれません

761:名無しさん@お腹いっぱい。
09/02/16 00:38:19
質問です。

やりたいことは、x=1:50; y=1:50; として、
その各々の格子点からcを作成して、 c = [ 1 ; x0; y0; ];
(x0, y0は格子点によって値が各々1~50に変わります。)
ある行列Aとの積の値 val = A * c; を求めて、
valをある関数fの引数にすることでzを求めます。 z=f(val);

すると、x軸、y軸、z軸で等高線がひけると思いますが、
この過程を効率よく(スマートに)計算するにはどのようにすれば
よさそうですか??for文でcを作ってやるしかないですか??

50x50x3の3次元行列なんかが作れてスパッと計算できたら
よさそうなのですが、どうもよくわかりませんでした。。

762:名無しさん@お腹いっぱい。
09/02/16 09:59:37
というわけでMatlabを含めてテスト

テスト対象のCPUはiMacの人と同じくIntel Core2Duo 2.4GHz
テストスクリプトは
n=2000; A=randn(n); B=randn(n);tic; C=A*B; t=toc, MFLOPS=2*n^3/t*1e-6
のまま

Octave Cygwin版3.0.3   GFLOPS = 1.1429
Octave MSVC版3.0.3    GFLOPS = 2.3239
MatlabR2008a(MT OFF)   GFLOPS = 6.1464
MatlabR2008a(MT ON)   GFLOPS = 10.326
(MT:マルチスレッド)
そして
Octave MacOSX版     GFLOPS = 12.5

Matlabをもってしても勝てません。もちろんループはOctaveの方が速いので
実際のプログラムの速度ではOctave-MacOSよりMatlabの方が速いでしょう
えーとちなみにMatlabは「安すぎる」と日本の関係者に言われている
アメリカの1ユーザーパッケージでも$1900で、日本国内で個人が買うと…
とても信じられない価格です ^_^;。

じゃあどうするか
・マルチスレッド対応のテキサス州立大学のGotoBLASを使う(無料、自由配布不可)
・マルチスレッド対応のインテルMKLを使う(有料、自由配布不可)
・Macを買う
・Matlabにお布施

ちなみにGotoBLASとMKLは同程度のパフォーマンスのようです。

763:名無しさん@お腹いっぱい。
09/02/16 11:07:25
>>762
C:\Program Files\MATLAB\R2008a\bin\win32

blas.spec
には
GenuineIntel Family * Model * mkl.dll mklcompat.dll # Intel processors
AuthenticAMD Family * Model * mkl.dll mklcompat.dll # AMD
とありますからMATLABはMKLを使ってます
逆に言うとMKLを導入してもMATLAB程度です

764:名無しさん@お腹いっぱい。
09/02/16 13:20:48
Cygwin介す場合が遅すぎるだけな気がする

765:octave for windowsメモの筆者
09/02/16 15:38:46
>>764 cygwin のblasってATLASじゃないとおもいまね。
かなり昔,mingwでliboctaveだけビルドできた時,行列計算にATLASをつかうと
(もちろんコードはliboctaveを使ったstandalone C++ですが。)
mingwとcygwinで差は,出ませんでした。
まあ,cygwinならoctaveビルド簡単だし,
マルチスレッド対応のテキサス州立大学の
GotoBLASを使う(無料、自由配布不可)

もcygwin上ならできるのでそこでどうなるかでしょうね。

Core2Duoのマシンのない私には無縁ですが^^;

HT Pentium(3.4GHz)だからそれでどれくらい,sse2なATLASとどこまで
向上するか比較できます。

766:octave for windowsメモの筆者
09/02/16 16:04:11
>>762
>・マルチスレッド対応のテキサス州立大学のGotoBLASを使う(無料、自由配布不可)

この場合,
octaveを自分でビルドする必要があるわけですね。

gcc-4.3.2-dw2-TDMのmingwでoctaveを構築(3.0.4RC3)したら,左除算がハングって
なぜ????

mingw-gcc-3.4.5なら何とかビルドできますが,いまさらgcc-3ってのもねと
おもっています。

Linuxを入れてgotoBlasてのもいいんかなとおもいますね。

職場から出るときにATLAS仕込んで帰ってやってみます。



767:octave for windowsメモの筆者
09/02/16 16:18:05
>>761
Octaveで行列型のデータつくってはきだして
gnuplotのcontourにお任せするのはどうですか。
3Dのグラフの等高線図はgnuplotで書きますから。
たしかMATRIX型のデータも扱えるはずですよ。
どうやって等高線を引くのかアルゴリズムはしりませんが,
gnuplotはソースコード公開しているからその気になれば
読めばわかると思います。

768:octave for windowsメモの筆者
09/02/16 18:44:26
>>766 自己レスです。意味不明な文章になっているので。<m(__)m>
帰りにコンピュータを走らせcygwinで自分のCPUにあわせたatlasを構築して,
そのATLASを使ってcygwin上でoctaveをビルドして,
MSVCのSSE2のCPUのATLASとの比較をして見ます。

という意味です。すみません。<m(__)m>




769:761
09/02/16 22:48:04
>>767 返信ありがとうございます!
わたしの質問の仕方がまずかったようです。出力したデータの等高線を描くのは問題ないのですが、
そのデータを出力する際に、

for xi = (1:5) * 25.0 / 5.0 - 10.0
for yi = (1:5) * 25.0 / 5.0 - 10.0
c = [1; xi; yi];
a = A * c;
b = 1.0 ./ (1+exp(-a));
z = sum(b);
printf("%f %f %f\n", xi, yi, z);
endfor
endfor

としているのですが、これより速く動作する(octaveらしい)書き方がありますか?
という意味でした。分かりにくくてすみませんでした。

特にfor文で回すのではなく、他の言語(SciPy, RubyのNArray)で使えるような
3次元行列を使う方法があれば嬉しいと思っています。

770:octave for windowsメモの筆者
09/02/17 19:16:55
>>762

MSVC
MFLOPS = 1845.9

mingw (Benjamin さんのもの)
MFLOPS = 1973.0

ATLA3.8.2を自分のコンピュータ用にcygwinでビルドしてこれをつかって,
mingw-4.3.2-dw2-TDMでoctave-3.0.4RC3をビルドしたもの
MFLOPS = 4830.2

(mingw 4.3.2でのビルドがReference Blasだとうまく動かなかったのが
Atlas使ったらあっさり動いた。なぜ!!)

私のコンピュータはHT-PentiumなのでCore2Duoまでは行かないでも,
マルチスレッドですから,やはり専用にATLASかけるとかなり違いますね。
Core2Duoならどうでしょうか?

ATLASの威力をフルに発揮させるにはやはりoctaveを自分でビルドしないと
だめですね。

octave for windowsメモにmingwで自分でビルドする方法でも書いたほうが
いいのかな。

goto blasもためしてみたいですね。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch