データ解析ツールoctaveを語ろう Part 2
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2009/10/28(水) 22:13:01unixを科学研究で使っている香具師には非常に心強い味方のはずだ。
matlab互換を主張しながら、微妙にバージョンアップを続ける
octaveについて語ろう。
そのPart 2です
前スレ
データ解析ツールoctaveを語ろう
http://pc12.2ch.net/test/read.cgi/unix/1086016412/
0054octave for windows メモの筆者
2010/04/27(火) 18:05:28octaveのバージョンはなんでしょう。また,platformはなんでしょう。
3.2.4ならdlmreadは,io パッケージでなくoctave本体に入って入ってますが。
また,octave-forgeのパッケージが何がはいるかはdistributorにもよるので
具体的な情報がないと誰もこたえられないと思います。
0055octave for windows メモの筆者
2010/04/27(火) 18:12:08書き忘れましたが,csvならばcsvreadも使えます。dmlreadで
セパレータ指定してもいいと思います。
0056名無しさん@お腹いっぱい。
2010/05/19(水) 19:54:09pkg load jhandles
でGNUTERMに何が設定してあっても、jhandleでグラフ描画するんですね
wxtはなんかグラフがはみ出すし、オーバーヘッドが大きいような気がしてました
0057octave for windows メモの筆者
2010/05/20(木) 19:23:11そうですね。3Dとかでmeshを細かく刻むとjhandlesじゃないと遅いですよね。
ただ,ginputをやろうとするとエラーがでたりします^^;。
3.4がでてFLTK backendが,まともになればjhandleもいらないかなとは
思います。
ただ,3.4リリースのための開発版3.3はMinGWではまだ不安定です。
gnulibでportabilityをあげようとしての結果なのだと思っています。
3.4のリリースはいつごろになるのかな。
0058名無しさん@お腹いっぱい。
2010/05/20(木) 22:44:31使ってみたらprintがだめっぽいですね
gif, png, jpgはだめ
MSVC版ではいんちきくさいながらも出来たのに
それとAuto Redrawしないので表示が消えちゃいます
drawnowすればいいだけですけど
実装があんまりよくないです
でもまあ、表示速度は段違いなので
経過を表示させる場合はいいかもです
0059octave for windows メモの筆者
2010/05/21(金) 11:30:57そうですね。まあ,MSVC版ではoctaveのメンテナーとjhandleのメンテナーが
同じ人でしたからね。
MinGWでSun Javaを扱うのが難しいなどで時間もかかったようですし,
FLTK Backendがまともになれば,jhandlesの意味も薄れるので力がそれ
実装がMSVC版ほど力が入っていないのはある程度しょうがないと思います。
pipeがwindowsでは遅いのでgnuplotが遅いのはあるていど仕方ないですね。
octaveからだとgnuplotはwindows NativeよりCygwinの方が大分速いですね。
私は,本当につかうグラフはデータ書き出してgnuplotでやります。
octaveからだとgnuplotの機能をフルには引き出せないので
octaveのグラフィックスはあくまでも経過表示用にしか使っていません。
0060名無しさん@お腹いっぱい。
2010/05/21(金) 13:57:11今出来るかどうか知りませんが、昔はこんな事してました
gset term postscript color
gset output 'hogehoge.ps'
plot (x1,y1)
gset term X11
単にprint文を知らなかっただけですけど
0061octave for windows メモの筆者
2010/05/21(金) 16:34:10今はできません。それらの関数は3.2からはすべて削除されました。
ただ,octave-forgeにgnuplotパッケージが入ったのでこれをつかうと
いう手もあるかもしれません。
MinGW-3.2.4には,gnuplotパッケージ入っているのでそれを使うという手も
ありそうです。
ttp://octave.sourceforge.net/functions_by_package.php
のgnuplotのreferenceはあまり詳しい記述がないので,
これでどんな関数があるか調べてhelp g_plotなどどする必要があります。
3.4ではgnuplotはまだbackendとして残るとおもいますが,将来的には
backendはfltkのみなり,gnuplotはoctave-forgeになる流れではと思います。
0062octave for windows メモの筆者
2010/05/26(水) 19:40:02先月ビルドしたときは,極めて不安定ですぐseg-faultを起こしていましたが
今日は安定して動いています。
fltk バックエンドも軸がちゃんと表示できるようになっていましたし,
連続プロットもgnuplotに比べかなり高速です。
ただしマウスで3Dぐりグリができなさそうなのが残念ですが。
しかし,MinGWはdevelopment branchのなかで一番対応が遅れていたのですが
これでなんとかなるめどがついた気がします。
あまり遠くない時期にoctave3.4が出てくるような気がします。
0063名無しさん@お腹いっぱい。
2010/06/26(土) 11:09:20テストしてみました(OSはXP Home)
ちなみにCore2以降のCPUに載ってるSSE3は
64bit倍精度浮動小数点演算を1クロックに4個実行できるSIMDユニットで
このSSE3が有効な場合の理論FLOPSをを計算すると
1.2G(Hz)*4(FLOPS/Clock)*2(Core)=9.6GFLOPS
となります。AtomなどにもSSE3のファンクションは載ってますが
それを実現するハードウェアはないため、速くはなりません。
GotoBLAS2は新たに1.13をダウンロードしてCygwin1.7上でmakeします
makeオプションは
http://www.db.is.kyushu-u.ac.jp/rinkou/cygwin/cblas.html
ここのをそのまま使います
makeが終わると、exports/にlibgoto2.dllが出来上がってますので
これをMingw版Octave 3.2.4のbinのblas.dllと置き換えればOKです
その前に環境変数GOTO_NUM_THREADSに2をセットしておき
cygwinのbinから、cygwin1.dll、cyggcc_s-1.dll、cyggfortran-3.dllをoctaveのbinにコピーしておきます
ベンチマークはいつものを使います
n=2000; A=randn(n); B=randn(n);tic; C=A*B; t=toc, MFLOPS=2*n^3/t*1e-6
デフォルト(たぶんatlas.dllを呼んでいる)のblas.dllだと
2.07 GFLOPS
GotoBLAS2だと
5.72 GFLOPS
で倍以上に速度が上がりました
GOTO_NUM_THREADSに1をセットすると
3.24 GFLOPS
なのでデュアルコア自体は効いてるようです
0064octave for windows メモの筆者
2010/07/26(月) 18:27:24最近のdevelopmentブランチをビルドしてみました(MinGW,gcc)。
fltkでepsを作成できるようになっており,またマウスによる3dの回転も
できるようになっています。
fltkもだいぶ実用に耐えるようになってきた感じです。
なにしろ高速なのがいいです。やっぱりOpenGLをつかっているからでしょう。
pkg installにもバグがあったようですが,それも解消されているし,
developmentブランチへの乗り換えを画策しています。
0065名無しさん@お腹いっぱい。
2010/08/14(土) 01:19:11http://www.nippyo.co.jp/magazine/maga_susemi.html
そこでは、Rは取り上げられてますが
MATLAB/Octaveはさっぱりですけど、
その特集とは別に
高速化・最適化のためのBLAS入門/藤澤克樹 50
と中央大学でSDPAの研究をしている藤澤先生が
MATLABとBLASを使った計算について説明してます
やってる事は >>63 とほぼ同じ(行列の1辺が2000ではなくて4000)スクリプトで
4コアCPUを2個使って、スレッド数を1個から8個まで増やすとどうなるか
という事について書かれてます。
0066名無しさん@お腹いっぱい。
2010/09/14(火) 21:48:37以下のようにして、
R = 10.0; L = 0.1e-3;
Rc = 100e3; Cc = 0.1e-9; Ca = 0.01e-9;
Z = tf([Cc*Rc 1],[Ca*Cc*Rc Cc+Ca 0]);
G = tf([1],[L R]);
sys = sysmult(G,Z);
sysout(sys,"tf");
とすると、本来numはsの一次式になるはずがそうなりません。
Cc、Caを数桁大きくすると正しく計算できるようです。
お手数ですが、この問題の回避策があれば教えていただけないでしょうか?
006766
2010/09/14(火) 21:52:39Win版 3.2.4です。
0068名無しさん@お腹いっぱい。
2010/10/12(火) 03:41:060069octave for windows メモの筆者
2010/10/16(土) 17:54:10現在 前スレ見れるところ
ttp://logsoku.com/thread/pc8.2ch.net/unix/1086016412/
0070名無しさん@お腹いっぱい。
2010/11/13(土) 10:00:190071名無しさん@お腹いっぱい。
2010/11/14(日) 00:32:040072octave for windows メモの筆者
2010/11/15(月) 16:46:45Function File: h = stem (x, y, linespec)
― Function File: h = stem (..., "filled")
:
x = 1:10;
y = ones (1, length (x))*2.*x;
stem (x, y, "b");
もっと詳しくはマニュアルを
0073octave for windows メモの筆者
2010/11/24(水) 08:02:34ついてライセンスが変わったとoctave ML 情報が入っています。
http://octave.1599824.n4.nabble.com/GotoBLAS2-license-td3055645.html
参考までに
0074名無しさん@お腹いっぱい。
2010/11/24(水) 09:50:17>GotoBLAS2 has been released by the Texas Advanced Computing Center
>as open source software under the BSD license.
素晴らしい。
従来は独特のライセンスのせいでユーザが自分で組み込む必要がありましたが、
今後は公開ソフトウェアに最初から組み込めるわけですね。
GotoBLAS2-1.13で打ち止めへ (2010-04-09 13:29:50)
http://blog.goo.ne.jp/nakatamaho/e/61d0cfbe1222364a3ef70505dce4f463
後藤和茂さんがヘッドハントされてからバージョンアップが止まってますが、
これも改善するかもしれません。
0075octave for windows メモの筆者
2010/11/24(水) 19:04:09Goto BLASの開発は,終了したようです。
http://blog.goo.ne.jp/nakatamaho/e/61d0cfbe1222364a3ef70505dce4f463
残念ですが。
0076octave for windows メモの筆者
2010/11/24(水) 19:06:0274をみていませんでした<m(__)m>。
0077octave for windows メモの筆者
2010/11/25(木) 14:49:21>後藤和茂さんがヘッドハントされてからバージョンアップが止まってますが、
>これも改善するかもしれません。
そうですね。
天才ハッカー(いい意味でのハッカーです。)後藤さんのあとを
続くような方が現れてプロジェクトとして
立ち上がってくれればいいのですが。
0078名無しさん@お腹いっぱい。
2010/12/21(火) 14:14:370079名無しさん@お腹いっぱい。
2010/12/21(火) 15:21:18Scilabの使いにくい点
・実行
MATLAB/Octaveは、拡張子.mを省いたmファイルをコマンドラインで打ち込めばいい
Scilabは、コマンドラインでexec('hoge.sce')とやらないといけない
・関数定義
MATLAB/Octaveは、パスの通ってるディレクトリかカレントディレクトリにあれば
勝手に読み込んでくれる。
Scilabは、明示的にgetf('hoge.sci')と読み込まないといけない。
※Scilab5では途中からgetfではなくexec('hoge.sci')になった
・コメント行
MATLABは%、Octaveは%と#
Scilabは//
・その他、ScilbはMATLABから見て方言が多いし、Octave Forgeのような豊富な関数を使えない。
利点
・グラフがOctaveよりはきれい
・Serial-0.2.tgzという非オフィシャルのパッケージを導入すると
RS-232Cのコントロールが可能
例えば、COM3のモデムを操作する場合
fp=openserial(3,"9600,n,8,1")
writeserial(fp,'ATI0'+ascii(13))
xpause(200000)
readserial(fp)
xpause(200000)
writeserial(fp,'ATI1'+ascii(13))
xpause(200000)
readserial(fp)
closeserial(fp)
こんな感じ。xpauseはパラメータのμ秒数だけ待つ命令
0080名無しさん@お腹いっぱい。
2010/12/22(水) 13:33:15ファイル増えてしかたない
sqliteあたりにまとめて保存できないでしょうか
0081名無しさん@お腹いっぱい。
2010/12/23(木) 22:20:35saveコマンドがあります
aaa=[1:1000];
save hoge.sav aaa
とやれば変数aaaがhoge.savにテキスト形式で保存されます
読み出す場合は
bbb=load('hoge.sav')
とやればいいです
この場合テキスト形式ですけど
save -binary hoge.bin aaa
とやればバイナリーで保存できますが、テキストよりもサイズが小さくなるかどうかはケースバイケースです
読み出しは
ccc=load('hoge.bin')
とやれば、勝手に保存形式を判断してくれます。
またMATLABのsaveコマンドで作られたファイルとの互換性もあるようです
0082octave for windows メモの筆者
2010/12/24(金) 17:39:00・グラフがOctaveよりはきれい
Ver. 3.3.54+ のFLTK Backendは,グラッフィクス,かなりよいですよ。
でも,自分でビルドしないと使えないのとMinGWではまだバグがある。
Ver 3.4はどれくらいかかるかな。
JWEさんのエンジンかかってきたから,数ヶ月後にはでるとおもうのですが。
0083octave for windows メモの筆者
2010/12/30(木) 05:32:50help save
`-zip', `-z'とか`-hdf5'を使うと小さくなると思うのですが。
0084octave for windows メモの筆者
2010/12/31(金) 06:32:590085名無しさん@お腹いっぱい。
2011/01/02(日) 08:27:310086octave for windows メモの筆者
2011/01/19(水) 18:39:37私は,MinGWのビルドしていますが状況はかなり改善しています。
3.4リリースが確実に近づいています。
新しい fltk Backend は,すばらしいものです。
できるだけ早く皆様が見る日がくればいいなと思います。
Debianなどでは,自力でビルドできる方がいらっしゃると思います。
ビルドできる環境におられるかたは
是非自力で開発版をビルドされて,
その実力をみていただきたいと思います。
0087octave for windows メモの筆者
2011/01/24(月) 07:26:47されました。
http://alpha.gnu.org/gnu/octave/
多くの方にビルドいただき,3.4のリリースにご協力いただきたいと思います。
0088octave for windows メモの筆者
2011/01/28(金) 08:30:060089octave for windows メモの筆者
2011/02/02(水) 09:18:42http://www.tatsuromatsuoka.com/octave/Eng/Win/
いくつかのバグがフィックスされています。
0090名無しさん@お腹いっぱい。
2011/02/08(火) 08:12:40テストパッケージ、ありがたく使わせてもらっています。
octaveと直接関係ないところで申し訳ありませんが。。。
パッケージに入っているckwなのですが、ckw.cfgの以下行が
Ckw*chdir: d:\usr\Tatsu
自分の環境に存在しないディレクトリだとckwが
立ち上がらないようです。
0091名無しさん@お腹いっぱい。
2011/02/08(火) 10:59:39入れてみましたけど
octave:1> backend("fltk")
error: `backend' undefined near line 1 column 1
となりますね。
plotするとgnuplotで描画されます。
0092名無しさん@お腹いっぱい。
2011/02/08(火) 12:32:24graphics_toolkitに変わったみたいですよ(たしか)
0093名無しさん@お腹いっぱい。
2011/02/08(火) 14:27:09確認しました
octave:1> graphics_toolkit('fltk')
octave:2> xx=[0:100];
octave:3> yy=sin(xx./5);
octave:4> plot(xx,yy)
これで表示されました
0094octave for windows メモの筆者
2011/02/09(水) 09:54:37ckw のご指摘ありがとうございました。
0095octave for windows メモの筆者
2011/02/09(水) 10:00:50http://www.gnu.org/software/octave/download.html
各ディストリビユーターによるバイナリのリリースはこれからだと思います。
なお,Windows版はMaintanerのBenjamin Lindnerさんの準備状況から
少し時間がかかると思います。
混乱を避けるため,3.4.0のtesting binaryを私の方から出すことは
しないつもりです。
直前のスナップショットの3.3.92を出すかもしれません。
(たぶん中身はほとんど変わらない)
0096octave for windows メモの筆者
2011/02/10(木) 07:16:38https://sites.google.com/site/guioctave/
0097名無しさん@お腹いっぱい。
2011/02/10(木) 12:50:16GNUplotを使ってたり残念感がありますね
ckwとgnuplotをwxt拡張で使ってる方がまだましというか
どうせならScilabやR言語のグラフ機能を乗っ取ったとかの方が良かった
0098octave for windows メモの筆者
2011/02/27(日) 16:18:39.27まあ,3.4になってfltkになればよくなると思いますが。Windowsでは,
まだしばらく3.4のリリースかかりそう。
0099名無しさん@お腹いっぱい。
2011/03/27(日) 03:29:38.85今のとこuigetfile、uiputfile、uigetdir、uimenuだけだけど、今まで手つかずだっただけに素晴らしい!
ところで、fltkって画像ファイルの出力ってできないんだろうか?
graphics_toolkit fltk;
plot(1:10);
print('test.eps','-deps');
とかやっても、空っぽのファイルしか出来ないんだけど…。
他の形式でも同様。
…うん、printはgnuplot backend使えって話はごもっともなんだけど、アニメーション作成用に
もうちょっと高速な出力手段を模索中。
誰か情報持ってない?
0100名無しさん@お腹いっぱい。
2011/04/15(金) 10:51:34.50Octaveのプログラミングについて質問させていただける板ってどこにありますか?
「Octave」「octave」で検索かけてもこの板しか見つかりませんでした.
エラーの返ってきちゃう関数をどうすれば使えるか調べたいんですけど(汗)
0101名無しさん@お腹いっぱい。
2011/04/18(月) 22:25:16.10MATLABのスレを探してみてください
OctaveはMATLABのクローンなので
あと、エラーの返ってくる関数を調べる方法は知りませんが
エラー処理はtry, catch でやります
例
A=[1,2]
B=[1;2]
try
C=A+B
catch
%lasterr
disp('error!!')
D=A+B'
end
AとBはベクトルの向きが違うので、足すとエラーが出るのですが
エラーの出そうな処理をtryの後に書き、エラーが出た後の処理をcatchの後に書きます
コメントアウトしているlasterrは直前のエラーが何かを表示します
0102名無しさん@お腹いっぱい。
2011/05/08(日) 12:20:29.280103名無しさん@お腹いっぱい。
2011/06/13(月) 00:08:14.52gset や __gnuplot_set とかが使えないんですが
set term tgif みたいな処理はoctave からはどのように
すれば良いんでしょうか?
0104octave for windows メモの筆者
2011/06/16(木) 03:40:35.38最近バージョンでは,gnuplotのコマンドを直接たたくことはできません。
plotしたあと
drawnow のdebug オプションを使って
>> drawnow ("tgif", "foo.tgif", false, "debug.gp")
で
>> system('gnuplot debug.gp');
でfoo.tgifを作成する。
ぐらいでしょうか
0105octave for windows メモの筆者
2011/06/16(木) 03:56:40.97すみません。やってみましたが,うまくいきませんでした。<m(__)m>
0106octave for windows メモの筆者
2011/06/16(木) 04:07:12.45うまくいかなかったのはWindows 版のgnuplot のbug のせいのようです。
windowsでは
system('gnuplot debug.gp');
system ('type debug.gp | gnuplot')でうまくいきそうです。
tgifをもっていないのでfoo.tgifをテキストエディタで確認しただけですが。
postscriptでうまくいったので,tgifでもおそらくいくと思います。
0107octave for windows メモの筆者
2011/06/16(木) 06:58:04.50plotしたあと
drawnow のdebug オプションを使って
>> drawnow ("tgif", "foo.obj", false, "debug.gp");
でgnuplotのスクリプトdebug.gpを出力し
それをsystemコマンドでgnuplotでgif出力(foo.obj)させます。
>> system('gnuplot debug.gp');
debug.gp のデータはバイナリであり,windows 上ではgnuplotバクにより
正しくプロットされません。
0108octave for windows メモの筆者
2011/06/16(木) 07:02:12.97windowsでは
>> system ('type debug.gp | gnuplot');
としてください。
0109octave for windows メモの筆者
2011/06/16(木) 07:33:34.95tgif はもっていないので,fig ファイルを生成するようにして
Cygwin 上Xfigで
でfoo.figを作成したところうまくいきました。
>> drawnow ("fig", "foo.fig", false, "debug.gp");
>> system ('type debug.gp | gnuplot');
できたfoo.fig をXfigでよみこんでプロットを確認しました。
tgifでもうまくいくと思います。
0110名無しさん@お腹いっぱい。
2011/06/18(土) 10:54:38.14>>103です。
いろいろお答えいただきましてありがとうございました。
tgif への出力はできるようになりました。
私がoctaveを使いこなしていないからかも
知れませんが 個人的には gnuplot の細かい設定が
octave上からできる方が便利なのですが。
0111octave for windows メモの筆者
2011/06/18(土) 17:08:46.76Octave は3.2(3.2では試験的,3.4から本格的)から
Open GL ベースのグラフィックスを扱うようになり,
整合性の観点から低レベルでgnuplotを直接触ることはやめになりました。
その代わり,octave-forgeにgnuplot パッケージがあり,
gnuplotを直接いじりたい方はそちらを使うという思想のようです。
0112octave for windows メモの筆者
2011/06/18(土) 17:15:21.41http://octave.sourceforge.net/gnuplot/overview.html
説明がわかりにくいのでつかったことはありません。
0113名無しさん@お腹いっぱい。
2011/06/18(土) 20:09:09.69意外と良いかも
0114名無しさん@お腹いっぱい。
2011/06/20(月) 11:49:46.70octave:1> x = [0.0, 0.2, 0.4]
x =
0.00000 0.20000 0.40000
octave:2> plot(x, sin(x))
error: Invalid call to strcat. Correct usage is:
-- Function File: strcat (S1, S2, ...)
error: called from:
error: /usr/share/octave/3.4.0/m/help/print_usage.m at line 87, column 5
error: /usr/share/octave/3.4.0/m/strings/strcat.m at line 92, column 5
error: /usr/share/octave/3.4.0/m/plot/__gnuplot_get_var__.m at line 113, column 11
error: /usr/share/octave/3.4.0/m/plot/__go_draw_axes__.m at line 40, column 18
error: /usr/share/octave/3.4.0/m/plot/__go_draw_figure__.m at line 167, column 19
error: /usr/share/octave/3.4.0/m/plot/__gnuplot_drawnow__.m at line 86, column 5
0115octave for windows メモの筆者
2011/06/21(火) 00:54:07.79どうもCygwin1.7.9-1とOctave+gnuplotの相性が悪いようで
Cygwin を1.7.8-1のダウングレードすると動きます。
0116名無しさん@お腹いっぱい。
2011/06/21(火) 15:01:05.47cygwinのバージョンを1.7.8-1に直したところグラフ表示できました.ありがとうございました!!
0117名無しさん@お腹いっぱい。
2011/06/21(火) 21:24:25.60octaveのサポート状況の良いディストリってどれ?
ubuntu のoctave はバージョン古い。
FreeBSDのportsのoctaveなんかは最新のおっかけは凄いけど
portsからのインストールは遅い。
0118octave for windows メモの筆者
2011/06/22(水) 03:04:37.49jweさんがDebianだからのぞいてみたけど,まだ3.2.4のままですね。
octaveの本家のMLをみるとLinuxの人は割りと自分でビルドしているようです。
0119octave for windows メモの筆者
2011/06/22(水) 06:18:06.49octave Download - Linux Packages Search (RPM, DEB, XZ, TXZ, TGZ)
http://pkgs.org/package/octave
3.4.0のようです。
0120名無しさん@お腹いっぱい。
2011/06/24(金) 03:56:24.07なんか凄い気合入って追っかけているような感じ。
0121octave for windows メモの筆者
2011/06/24(金) 04:04:41.54(日本人です。)
その方は多倍長BLASの作者でもあります。
最近連絡を取りました。
ところでoctave 3.4.1には,mkoctfileにバグが見つかり,
3.4.2の準備段階です。(現在RC2がでている)。
FreeBSDは,3.4.2がでたらすぐ対応するようです。
0122名無しさん@お腹いっぱい。
2011/06/24(金) 23:22:10.88Octave のためだけに。
0123名無しさん@お腹いっぱい。
2011/06/25(土) 00:23:16.920124名無しさん@お腹いっぱい。
2011/06/25(土) 01:55:02.93MysqlでもCUDAでも何でも新機能を導入しようとする場合に
John W. Eaton氏が、GPLかどうかを問いかけて潰れていってる気がする
Rなんか2009年の段階でGPU対応してるのに
http://brainarray.mbni.med.umich.edu/Brainarray/Rgpgpu/
Mysqlにまで対応している
http://www.okada.jp.org/RWiki/?RMySQL
じゃあScilabでもいいやと調べてみても
まともなものが無い
Scilabは他のtoolboxも貧弱だし
0125octave for windows メモの筆者
2011/06/25(土) 02:16:04.98http://octave.1599824.n4.nabble.com/GNU-Octave-3-4-2-Released-td3622778.html
0126octave for windows メモの筆者
2011/06/25(土) 02:33:11.93MySQLはoctave-forgeで対応している気がする。
自分では使わないから詳細はわかりませんが。
http://octave.sourceforge.net/database/overview.html
These are bindings that allow SQL queries and other database operations
on postgres, mysql, sqlite, and standard ODBC databases from within
Octave. A simplified interface that is uniform across all database types
is provided, as well as the entire C client API for each database
(libpq, libmysqlclient, etc).
0127octave for windows メモの筆者
2011/06/25(土) 02:42:05.19こんなページもあります。
http://octave-swig.sourceforge.net/octave-db.html
これを見る限りOctave-forgeのdatabase パッケージにてMySQLには
対応できるのではと思います。
0128octave for windows メモの筆者
2011/06/25(土) 06:29:16.81CUDAについては,OctaveはGPLですので,
jwe氏が言うことは仕方のないことなのでしょう。
OctaveがGPLから他のライセンスに変えるか,GPLが変わるか
CUDAがかわるかどちらかでないといけないのでしょうが,
まあ実現はしないのだと思います。
ところで,MySQLは,
http://www-jp.mysql.com/about/legal/licensing/faq.html
にあるように問題がないように思います。
だからOctave-forgeのdatabaseパッケージでMySQLはサポートされている
のだと思っています。
0129octave for windows メモの筆者
2011/06/25(土) 06:35:35.07ただし,再配布せず自分でやる分には問題がないと思います。
以前GotoBLASが,GPL非互換だったとき自分でソースからビルドして,
octaveのビルド時に組み込んで使用することはできました。
かなり,億劫なことになりますが,
http://scinesur.wordpress.com/2009/11/12/cuda-on-octave-3-x-in-linux-64-bits/
なこのページもあることですし,自力でやることはできるのかなと思います。
0130名無しさん@お腹いっぱい。
2011/06/25(土) 08:57:30.61mingw版もcygwin版も(どちらも3.2.4)
octave:5> pkg install database-1.0.4.tar.gz
で入れようとしても、内部のmakeでこけますね
tar.gzを直接開いて./configureしてみると
sqlite3でwarningが出るし
結果がこれで
octave-forge is configured with
octave: octave (version 3.2.4)
mkoctfile: mkoctfile for Octave 4
swig: pre-generated
postgres: postgresql/libpq-fe.h not found
mysql: mysql/mysql.h not found
sqlite3: yes
odbc: yes
postgresqlやmysqlはライブラリが必要みたいだし
makeもsqliteの段階でこけるので、unix系なら動くのかもしれませんが
Windowsでは無理っぽいですね
0131octave for windows メモの筆者
2011/06/25(土) 12:23:55.27そうですね。3.0.xのころdatabaseパッケージを四苦八苦していれましたが,
postgres と mysqlはあきらめてsqlite3とodbcだけでやったことがあります。
CygwinならたしかpostgresqlがOctaveを意識せずにあったような気がしますが,
それを使ってpkg installをしたことがないので,なんともいえません。
Cygwinの方がUnixに近いのでライブラリをかき集めれば何とかなるかも
知れません。
0132octave for windows メモの筆者
2011/06/29(水) 02:59:55.51http://www.tatsuromatsuoka.com/octave/Eng/Win/
あくまでも体験版で,
Octave-forgeがはいっていませんし,バグもあると思います。
インストーラーなる気の利いたものもなく,zipファイルを解凍して
適当なフォルダにおきます。
ビルドに必要なツールも一応いれたつもりなので,自分でビルドしてみたい
方はどうぞ。ただし,あまり丁寧な説明はしていません。
0133名無しさん@お腹いっぱい。
2011/07/04(月) 06:29:50.28Benjaminさんの
Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe
で、コマンドラインからのpath指定が効かないんですが、なんとかなりませんでしょうか?
> octave.exe --path c:\
> octave.exe --path c:\\
> octave.exe --path c:/
> octave.exe --path c://
> octave.exe --path /c/
いずれもダメでした。
Linuxなら特に問題ないのですが…
0134octave for windows メモの筆者
2011/07/04(月) 15:21:59.890135octave for windows メモの筆者
2011/07/04(月) 15:28:18.58>octave --eval "cd c:\\" --persist
で代用できませんか?
0136octave for windows メモの筆者
2011/07/04(月) 15:38:46.46マニュアルによれば
--path path
-p path
Add path to the head of the search path for function files.
The value of path specified on the command line will override any
value of OCTAVE_PATH found in the environment, but not any commands in
the system or user startup files that set the internal load path
through one of the path functions.
となっていて,Cygwin版でもMinGW版でも OCTAVE_PATH には,なにも反映され
ない。Linuxでの期待通りの動きとはどんなものですか?
Linuxもってないのでわからないので。
0137名無しさん@お腹いっぱい。
2011/07/04(月) 23:18:23.00試して下さって、大変ありがとうございます!!
Linux版なら、
$ octave -q --path /home/user/work
octave:1> path
.
/home/user/work (←このフォルダが存在する場合のみ)
/usr/lib/octave/3.2.4/site/oct/i686-pc-linux-gnu
/usr/lib/octave/site/oct/api-v37/i686-pc-linux-gnu
...
となります(恐らくご想像通りでしょうが…)。
ちなみに、
$ OCTAVE_PATH=/home/user/work octave -q
でも同義です。
こちらでも迂回策を探してはいるのですが、環境変数も効きませんし、なかなか…
0138octave for windows メモの筆者
2011/07/05(火) 01:47:59.89octave --eval "addpath C:\\" --persist
ではいかがでしょうか。
0139octave for windows メモの筆者
2011/07/05(火) 01:56:50.28ようです。MinGWならではのバグのようです。
職場のパソコンで自分でビルドした3.4.2(MinGW)でも,動作しなければバグ
報告をします。
0140octave for windows メモの筆者
2011/07/05(火) 06:45:34.07octave --path c:\
***********
3.2.4
.
C:\Programs\Octave\3.2.4_gcc-4.4.0\share\octave\packages\zenity-0.5.7
(以下略)
**************
3.4.2
.
C:
C:\octave\3.4.2\lib\octave\3.4.2\site\oct\i686-pc-mingw32
:
(以下略)
となるのですが
octave --path C:\octave
Octave's search path contains the following directories:
.
C:\octave
C:\octave\3.4.2\lib\octave\3.4.2\site\oct\i686-pc-mingw32
:
(以下略)
**********************
0141名無しさん@お腹いっぱい。
2011/07/05(火) 07:58:49.52ありがとうございます、現在そちらの方向で検討中です。
>>140
え?なぜ3.4.2はそんな残念な動作に…
3.2.4(Benjamin版)ではC:\Octaveを指定しても駄目なようですね
こちらの職場PCにはBenjaminさんのメモにしたがってビルドした
3.2.4がありますので、そちらも試してみます。
0142octave for windows メモの筆者
2011/07/05(火) 08:11:41.89140 は長くて,2chにおこられたので,後から続きを書こうとしてわすれていました。
どーもドライブのルートディレクトリの場合は失敗して,C:\とならず,C:
となるのですが,C:\octaveのような場合は大丈夫です。
一応,development branch でも試すために,現在ビルド中です。
0143octave for windows メモの筆者
2011/07/05(火) 09:51:31.50octave --path c:\
のようなルートディレクトリの指定はバグってますね。
時間があるときにbug trackerに登録します。
(直るかどうかわかりませんが。)
0144octave for windows メモの筆者
2011/07/05(火) 10:18:47.77https://savannah.gnu.org/bugs/?33714
0145名無しさん@お腹いっぱい。
2011/07/05(火) 23:05:49.70大変感謝です…。
ちなみに、Benjaminさんメモに従ってビルドした3.2.4ですが、
MSYS環境ではpath指定が通りました。
コマンドプロンプトからはlibgcc_s….dllが足りないとか言われて
実行できなかったので、未検証です。
(MSYS環境以下を探しても見つからなかったので諦めてましたが、
よく考えたらMinGW環境以下にありそうですね…忘れてました)
0146octave for windows メモの筆者
2011/07/06(水) 01:46:53.64Msys 環境下で指定がうまくいくということは,パスのハンドリングが
octave --path でUnix likeになっているからかもしれません。
なお,libgcc_s….dllなどたらない,dllは,Benjaminさんのビルドのbin
ディレクトリからコピーして,自分でビルドしたoctave.exe,
octave-3.2.4.exeのあるディレクトリにペーストすればいいです。
または,バッチファイルなどでBenjaminさんのビルドのbinディレクトリに
パスを通すという手もあります。
0147名無しさん@お腹いっぱい。
2011/07/06(水) 18:47:15.59コマンドプロンプト環境下で試してみました。
dllはOctaveのビルドに使用したc:\mingwのbinにパスを通して
対処してます。
octave --path c:\msys -> OK
octave --path c:\ -> OK(ちゃんとc:\と表示される)
…あれ?
Benjaminさんメモに従うとコンパイルは自動で流れるので、
できるバイナリはインストーラで配布されているものと
同じはず、だと思うんですが…?
なお、本来の目的はOctave起動後にaddpathすることで達して
おりますので、これ以上追いかける意味は無くなってしまったのですが…。
ご報告まで。
0148octave for windows メモの筆者
2011/07/06(水) 21:34:11.72ご報告ありがとうございました。
回避法があるとはいえ,不思議ですね。
0149名無しさん@お腹いっぱい。
2011/08/03(水) 16:34:09.93画像をfft2して、その後、元の画像に戻るかiff2でチェックしたいのですが、どうもうまくいきません・・・
プログラムのどこが悪いのでしょうか?
Iin=imread('BOAT.bmp');% 画像の入力
figure,imagesc(Iin,[0 255]);% 画像表示
colormap(gray);
axis image;
%FFT変換
Iin_d=double(Iin);
O_fft=fft2(Iin_d);% FFT
O_fft=fftshift(O_fft);
O_fft=(abs(O_fft));
O_fft=10*log10(O_fft);% FFT結果のlog表示
figure,imagesc(O_fft,[0 MAX]);% 画像表示
colormap(gray);
axis image;
%逆FFT
O_fft2=(abs(O_fft2));
O_fft2=10*log10(O_fft2);
O_fft2=fftshift(O_fft);
O_fft2=real(ifft2(O_fft2));
figure,imagesc(O_fft2,[0 MAX]);% 画像表示
colormap(gray);
axis image;
どなたかお願いします
0150octave for windows メモの筆者
2011/08/08(月) 09:37:41.35画像処理は詳しくありませんが,演算が逆演算になっていないような気がします。
0151名無しさん@お腹いっぱい。
2011/08/08(月) 14:03:14.870152octave for windows メモの筆者
2011/08/08(月) 16:59:04.63自信なし:一応画像で確認した。
Iin_d=double(Iin);
O_fft=fft2(Iin_d);% FFT
O_fft2=real(ifft2(O_fft)); %ifft
figure,imagesc(Iin,[0 255]);
fftした結果を演算されていますが,もとのイメージのフーリエ空間での
画像に演算をされておられるので情報が変わってしまっています。
したがって,ifftで戻るはずは原理的にないような気がします
0153octave for windows メモの筆者
2011/08/08(月) 17:55:52.63訂正
Iin_d=double(Iin);
O_fft=fft2(Iin_d);% FFT
O_fft2=real(ifft2(O_fft)); %ifft
figure,imagesc(O_fft2,[0 255]); %ここを訂正
■ このスレッドは過去ログ倉庫に格納されています