1 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/28(水) 22:13:01 ] 知る人ぞ知る強力なデータ解析ツール octave ... unixを科学研究で使っている香具師には非常に心強い味方のはずだ。 matlab互換を主張しながら、微妙にバージョンアップを続ける octaveについて語ろう。 そのPart 2です 前スレ データ解析ツールoctaveを語ろう pc12.2ch.net/test/read.cgi/unix/1086016412/
127 名前:octave for windows メモの筆者 mailto:sage [2011/06/25(土) 02:42:05.19 ] >>124 >>126 こんなページもあります。 octave-swig.sourceforge.net/octave-db.html これを見る限りOctave-forgeのdatabase パッケージにてMySQLには 対応できるのではと思います。
128 名前:octave for windows メモの筆者 mailto:sage [2011/06/25(土) 06:29:16.81 ] >>124 CUDAについては,OctaveはGPLですので, jwe氏が言うことは仕方のないことなのでしょう。 OctaveがGPLから他のライセンスに変えるか,GPLが変わるか CUDAがかわるかどちらかでないといけないのでしょうが, まあ実現はしないのだと思います。 ところで,MySQLは, www-jp.mysql.com/about/legal/licensing/faq.html にあるように問題がないように思います。 だからOctave-forgeのdatabaseパッケージでMySQLはサポートされている のだと思っています。
129 名前:octave for windows メモの筆者 mailto:sage [2011/06/25(土) 06:35:35.07 ] >>128 ただし,再配布せず自分でやる分には問題がないと思います。 以前GotoBLASが,GPL非互換だったとき自分でソースからビルドして, octaveのビルド時に組み込んで使用することはできました。 かなり,億劫なことになりますが, scinesur.wordpress.com/2009/11/12/cuda-on-octave-3-x-in-linux-64-bits/ なこのページもあることですし,自力でやることはできるのかなと思います。
130 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/06/25(土) 08:57:30.61 ] >>126 mingw版も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では無理っぽいですね
131 名前:octave for windows メモの筆者 mailto:sage [2011/06/25(土) 12:23:55.27 ] >>130 そうですね。3.0.xのころdatabaseパッケージを四苦八苦していれましたが, postgres と mysqlはあきらめてsqlite3とodbcだけでやったことがあります。 CygwinならたしかpostgresqlがOctaveを意識せずにあったような気がしますが, それを使ってpkg installをしたことがないので,なんともいえません。 Cygwinの方がUnixに近いのでライブラリをかき集めれば何とかなるかも 知れません。
132 名前:octave for windows メモの筆者 mailto:sage [2011/06/29(水) 02:59:55.51 ] MinGWの体験版のOctave-3.2.4バイナリを作成し,配布してます。 www.tatsuromatsuoka.com/octave/Eng/Win/ あくまでも体験版で, Octave-forgeがはいっていませんし,バグもあると思います。 インストーラーなる気の利いたものもなく,zipファイルを解凍して 適当なフォルダにおきます。 ビルドに必要なツールも一応いれたつもりなので,自分でビルドしてみたい 方はどうぞ。ただし,あまり丁寧な説明はしていません。
133 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/07/04(月) 06:29:50.28 ] どなたか賢い方、助けて下さい… Benjaminさんの 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なら特に問題ないのですが…
134 名前:octave for windows メモの筆者 mailto:sage [2011/07/04(月) 15:21:59.89 ] >>133 Cygwin版ならちゃんと動くんでバグかもしれません。
135 名前:octave for windows メモの筆者 mailto:sage [2011/07/04(月) 15:28:18.58 ] >>133 >octave --eval "cd c:\\" --persist で代用できませんか?
136 名前:octave for windows メモの筆者 mailto:sage [2011/07/04(月) 15:38:46.46 ] >>134 , 135 すみません勘違いです。 マニュアルによれば --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もってないのでわからないので。
137 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/07/04(月) 23:18:23.00 ] >>134-136 試して下さって、大変ありがとうございます!! 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 でも同義です。 こちらでも迂回策を探してはいるのですが、環境変数も効きませんし、なかなか…
138 名前:octave for windows メモの筆者 mailto:sage [2011/07/05(火) 01:47:59.89 ] >>137 octave --eval "addpath C:\\" --persist ではいかがでしょうか。
139 名前:octave for windows メモの筆者 mailto:sage [2011/07/05(火) 01:56:50.28 ] >>137 蛇足です。Cygwin版のoctaveでは,おっしゃられている動作をする ようです。MinGWならではのバグのようです。 職場のパソコンで自分でビルドした3.4.2(MinGW)でも,動作しなければバグ 報告をします。
140 名前:octave for windows メモの筆者 mailto:sage [2011/07/05(火) 06:45:34.07 ] >>139 職場のパソコンでoctave 3.4.2と3.2.4(Benjamin版)で試してみました。 octave --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 : (以下略) **********************
141 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/07/05(火) 07:58:49.52 ] >>138 ありがとうございます、現在そちらの方向で検討中です。 >>140 え?なぜ3.4.2はそんな残念な動作に… 3.2.4(Benjamin版)ではC:\Octaveを指定しても駄目なようですね こちらの職場PCにはBenjaminさんのメモにしたがってビルドした 3.2.4がありますので、そちらも試してみます。
142 名前:octave for windows メモの筆者 mailto:sage [2011/07/05(火) 08:11:41.89 ] >>141 140 は長くて,2chにおこられたので,後から続きを書こうとしてわすれていました。 どーもドライブのルートディレクトリの場合は失敗して,C:\とならず,C: となるのですが,C:\octaveのような場合は大丈夫です。 一応,development branch でも試すために,現在ビルド中です。
143 名前:octave for windows メモの筆者 mailto:sage [2011/07/05(火) 09:51:31.50 ] >>142 予想通りDevelopment Branchのソースからビルドしても, octave --path c:\ のようなルートディレクトリの指定はバグってますね。 時間があるときにbug trackerに登録します。 (直るかどうかわかりませんが。)
144 名前:octave for windows メモの筆者 mailto:sage [2011/07/05(火) 10:18:47.77 ] >>143 bug tracker に登録しておきました。 https://savannah.gnu.org/bugs/?33714
145 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/07/05(火) 23:05:49.70 ] >>143 大変感謝です…。 ちなみに、Benjaminさんメモに従ってビルドした3.2.4ですが、 MSYS環境ではpath指定が通りました。 コマンドプロンプトからはlibgcc_s….dllが足りないとか言われて 実行できなかったので、未検証です。 (MSYS環境以下を探しても見つからなかったので諦めてましたが、 よく考えたらMinGW環境以下にありそうですね…忘れてました)
146 名前:octave for windows メモの筆者 mailto:sage [2011/07/06(水) 01:46:53.64 ] >>145 Msys 環境下で指定がうまくいくということは,パスのハンドリングが octave --path でUnix likeになっているからかもしれません。 なお,libgcc_s….dllなどたらない,dllは,Benjaminさんのビルドのbin ディレクトリからコピーして,自分でビルドしたoctave.exe, octave-3.2.4.exeのあるディレクトリにペーストすればいいです。 または,バッチファイルなどでBenjaminさんのビルドのbinディレクトリに パスを通すという手もあります。
147 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/07/06(水) 18:47:15.59 ] >>146 コマンドプロンプト環境下で試してみました。 dllはOctaveのビルドに使用したc:\mingwのbinにパスを通して 対処してます。 octave --path c:\msys -> OK octave --path c:\ -> OK(ちゃんとc:\と表示される) …あれ? Benjaminさんメモに従うとコンパイルは自動で流れるので、 できるバイナリはインストーラで配布されているものと 同じはず、だと思うんですが…? なお、本来の目的はOctave起動後にaddpathすることで達して おりますので、これ以上追いかける意味は無くなってしまったのですが…。 ご報告まで。
148 名前:octave for windows メモの筆者 mailto:sage [2011/07/06(水) 21:34:11.72 ] >>147 ご報告ありがとうございました。 回避法があるとはいえ,不思議ですね。
149 名前:名無しさん@お腹いっぱい。 mailto:sage [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; どなたかお願いします
150 名前:octave for windows メモの筆者 mailto:sage [2011/08/08(月) 09:37:41.35 ] >>149 画像処理は詳しくありませんが,演算が逆演算になっていないような気がします。
151 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/08/08(月) 14:03:14.87 ] abs()をつけてる時点で虚数次元が飛んでますからね
152 名前:octave for windows メモの筆者 mailto:sage [2011/08/08(月) 16:59:04.63 ] >>149 >>150 自信なし:一応画像で確認した。 Iin_d=double(Iin); O_fft=fft2(Iin_d);% FFT O_fft2=real(ifft2(O_fft)); %ifft figure,imagesc(Iin,[0 255]); fftした結果を演算されていますが,もとのイメージのフーリエ空間での 画像に演算をされておられるので情報が変わってしまっています。 したがって,ifftで戻るはずは原理的にないような気がします
153 名前:octave for windows メモの筆者 mailto:sage [2011/08/08(月) 17:55:52.63 ] >>152 訂正 Iin_d=double(Iin); O_fft=fft2(Iin_d);% FFT O_fft2=real(ifft2(O_fft)); %ifft figure,imagesc(O_fft2,[0 255]); %ここを訂正
154 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/08/09(火) 15:43:46.03 ] むしろこんな感じ sigma=40; for XX=1:128, for YY=1:128; ZZ(XX,YY)=63*exp(-1*(XX-64)^2/(2*sigma^2))*exp(-1*(YY-64)^2/(2*sigma^2)); end; end; ZZ1=fft(ZZ); ZZ2=ifft(ZZ1); image(ZZ) colorbar pause(2); image(abs(ZZ1)) colorbar pause(2); image(abs(ZZ2)); colorbar pause(2); 要点は、imageで表示するとき以外はabsとかを使わない
155 名前:octave for windows メモの筆者 mailto:sage [2011/09/02(金) 10:37:46.27 ] Blas としてOpenBLASかなり使えます。 https://github.com/xianyi/OpenBLAS なお,Cygwin 上にmingw64のクロスコンパイラが入りました。 mingw64は32 bitもサポートしていますので,windows 用には, それを使います。 (setup.exeでインストールしてください。) makeは以下のようにしてください。 make CC=i686-pc-mingw32-gcc FC=i686-pc-mingw32-gfortran OSNAME=WINNT TARGET=CORE2 TARGETは各自のCPUにあわせてください。 できた libopenblas_(cpu id)-r0.1alpha2.2.dll octaveのあるbinフォルダにコピペして, octave-3.2.4 mingwなら blas.dllとリネームすればいいです。 (octave-3.4.2 ならlibblas.dllに )
156 名前:octave for windows メモの筆者 mailto:sage [2011/09/05(月) 10:46:31.60 ] Octave-3.4.2-mingw + octaveforge pkgs が出ました。 old.nabble.com/Octave-3.4.2-mingw-%2B-octaveforge-pkgs-to32394771.html
157 名前:octave for windows メモの筆者 mailto:sage [2011/09/07(水) 17:24:14.86 ] Gnu Octave windows版のOctave-forge packageがアップデートされました。 old.nabble.com/Re%3A-Octave-3.4.2-mingw-%2B-octaveforge-pkgs-p32413743.html
158 名前:octave for windows メモの筆者 mailto:sage [2011/09/15(木) 08:01:26.94 ] Gnu Octave windows版のOctave-forge packageがアップデートされました。 octave.1599824.n4.nabble.com/Updated-Octave3-4-2-Mingw-for-testing-was-Mingw-Octave-3-4-2-blank-gnuplot-printouts-td3814047.html
159 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/09/22(木) 00:01:20.14 ] memory exhaustエラーが、少し大きめのデータで出てしまうのが、 改善されるといいなぁ。
160 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/09/22(木) 09:47:51.52 ] >>159 64bit版ならそのエラーが簡単には出ないって話ですけどね ただし正式なバイナリーがリリースされてない
161 名前:octave for windows メモの筆者 mailto:sage [2011/09/22(木) 14:14:55.62 ] >>159 >>160 ttp://www.gnu.org/software/octave/doc/interpreter/Compiling-Octave-with-64_002dbit-Indexing.html にしたがってビルドするしかないようですね。 Debian 上での例が載ってます。
162 名前:octave for windows メモの筆者 mailto:sage [2011/09/22(木) 17:00:01.71 ] >>159 >>160 Scilab なら64bit版があるようです。 ttp://www.scilab.org/products/scilab/download でも,文法かなり違うからなあ。
163 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/09/26(月) 13:34:26.79 ] >>162 Scilabの32bitも64bitもメモリー管理としては大差無いようです Windows7 64bit に4GBのメモリーを積んだ条件で Octave 3.2.4で AA=ones(12000,10000); とやると通りますが AA=ones(13000,10000); では error: memory exhausted と出ます。 Scilab 5.3.3 では32bitでも64bitでも stacksize('max'); を実行した後に AA=ones(13000,10000); は通りますが AA=ones(14000,10000); はエラーが出ます。 倍精度が16bitだとして(複素数の実部と虚部にそれぞれ8bit倍精度) 2GBぐらいに壁があるようです。
164 名前:octave for windows メモの筆者 mailto:sage [2011/09/26(月) 17:59:23.61 ] >>163 私もやってみました。 -->AA=ones(13600,10000); !--error 17 stack size exceeded! Use stacksize function to increase it. Memory used for variables: 135007946 中間的なメモリが必要です: 136000002 Total memory available: 268435455 Scilabの場合,スタックサイズの上限に問題があるようですね。
165 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/09/27(火) 09:00:38.67 ] >>163 倍精度複素数16bitではなくて16Bytesの間違いでした 全部の変数で2GB未満しかアロケート出来ないっぽいです 2^32は42億9496万7296でしたか、つまり4Gですが CPUは2の補数をとった2Gまでしかアクセスできないのでしょう
166 名前:octave for windows メモの筆者 mailto:sage [2011/09/27(火) 10:26:32.43 ] >>165 ttp://www.gnu.org/software/octave/doc/interpreter/Compiling-Octave-with-64_002dbit-Indexing.html をよく読むとArray Indexとなる整数のバイト数を64 bitの体系にあわせて, ライブラリまで含めて構築しなおす必要があるようです。 (たとえばFortran のライブラリなら(たとえばLAPACK), interger のデフォルトのバイトを8バイトにする。) Scilab 64 bitは,そこまで考えてビルドされていなのではと推測します。
167 名前:octave for windows メモの筆者 mailto:sage [2011/09/30(金) 10:42:53.78 ] Octave 3.4.3-rc0 release candidate available for ftp ttp://octave.1599824.n4.nabble.com/Octave-3-4-3-rc0-release-candidate-available-for-ftp-td3857294.html だそうです。
168 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/01(土) 22:47:50.57 ] Octaveの連想配列はどう書けば良いのですか? データに番号がついていて連続していない状態で、他のデータから連続していないデータを参照しているので 内部で番号をつけ直しています。つけ直しの時に総ナメのような感じになってしまうので連想配列が使えたら と思いまして質問しました。
169 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/02(日) 01:13:05.09 ] >>168 構造体で、それっぽいことはできたはず。 その用途でしたら、スパース行列でもよさげ。 どっちが速いかは未検討。
170 名前:168 mailto:sage [2011/10/02(日) 09:20:50.75 ] >>169 a.idみたいな感じで丁度構造体を使っているので構造体を使った連想っぽい処理をもう少し具体的に知りたいです どんな感じで使えば良いのですか?
171 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/02(日) 14:17:52.86 ] >>169 問題がややあいまいなので、もうちっと具体的にどうぞ。 情報の後出しは、無しということで。
172 名前:168 mailto:sage [2011/10/02(日) 18:24:07.84 ] どこまで必要な情報なのか・・・書ききれるのか分かりませんが書いてみます 有限要素法のプログラムを勉強のために作っているのですが、データが節点、 要素等番号がついています。NASTRANのデータ形式をGRIDとかCHEXAとか を使っています。(手を抜いて継続行を一行にしていたりしますが・・・) これらの番号(ID)は連続した数字ではなく、プログラム内部で参照して番号を 関連付けるしかないのですが、現状総ナメで番号(ID)を内部の連続した配列番号 に関連付けています。変数はelem(:).id、node(:).idがデータの番号で関連付 けした変数はelem(:).no、node(:).noとかにしています。主にelemがnode を参照するのでnode(:).idを連想配列風の処理で内部の配列番号に変換したいのです 読みにくいと思いますが、構造体を使った連想配列風の処理を教えていただけない でしょうか?
173 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/02(日) 23:48:46.22 ] >>172 もっとスマートな方法もありそうですが… 期待外れだったら、すいません。 案1(スパース行列) node_id = [1 10 100 1000 10000]; node_id_t = sparse(0,0); node_id_t(node_id) = 1:length(node_id); % node_id_t(10000) -> 5 案2(連想配列?) node.id_1 = 1; node.id_10 = 2; node.id_100 = 3; node.id_1000 = 4; node.id_10000 = 5; % getfield(node,['id_' num2str(10000)]) -> 5 ちなみに、FEMをOctaveで、ということでしたら、OpenFEMというのも参考になるかもしれません。 Matlab用で、コードがめちゃくちゃ読みづらくて、かなりbuggyで信用なりませんが、 各種アルゴリズムの実装を知るには非常に有用です(個人的に、固有値解析のとこは感動しました)。
174 名前:168 mailto:sage [2011/10/04(火) 20:03:02.40 ] >>173 お返事有り難う御座います。 処理速度を早くするためにはスパース行列が良さそうですね、 処理手順を多少弄らなければいけなさそうですが少し考えてみます。 案2の方も少し考えてみます。(使えそうな使えなさそうな・・・) OpenFEMの情報有り難う御座います。少しググってみます。
175 名前:octave for windows メモの筆者 mailto:sage [2011/10/11(火) 10:17:19.15 ] GNU Octave 3.4.3 Released ttp://octave.1599824.n4.nabble.com/GNU-Octave-3-4-3-Released-td3890670.html
176 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/11(火) 21:28:31.48 ] >>175 毎度ありがとうございます。 目玉機能は何かあります? (simulinkがついに出来たとか :-P )
177 名前:octave for windows メモの筆者 mailto:sage [2011/10/12(水) 16:12:10.66 ] >>176 残念ながら喜ぶような機能の追加はなく,バグフィックスのようです。 3.4はこれでおしまいで,次は3.6になります。 GUIのインターフェースがつくかも知れませんが,はっきりとしません。
178 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/12(水) 20:10:34.63 ] >>177 あ、それは残念。 純正のOctave Workshopと、ネイティブEXCELリーダーが付けばいいなぁ。
179 名前:octave for windows メモの筆者 mailto:sage [2011/10/13(木) 11:33:00.99 ] >>ネイティブEXCELリーダー Octave-forgeのio packageである程度のことはできるようです。 私はつかったことがないのでよくわかりません。 ttp://octave.sourceforge.net/io/overview.html >>純正のOctave Workshop Qt BaseのGUIが検討されていてもしかしたら,3.6で実装 (たぶんExperimental)されるやもしれません。 Windows版については,最近活動がストップしているBenjaminさんに 変わる人が出てくればいいのですが。 私のスキル,体調,仕事上の都合でそこまでついていけないのが実情です。
180 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/13(木) 13:02:18.29 ] scilabでは伝達関数を定義するのに s=poly(0,"s") sys=1/(1+s) ってできますが Octaveでは sys=tf( [1] , [1 1] ); ですよね。 scilabみたいに記法する方法はないですかね?
181 名前:octave for windows メモの筆者 mailto:sage [2011/10/13(木) 17:08:44.70 ] 制御系には全く無知なのではずしていたらすみません。 Octave 3.4に対応した Octave-forgeのcontrol packageでは, ttp://octave.sourceforge.net/control/function/tf.html Exampleに octave:1> s = tf ("s"); octave:2> G = 1/(s+1) Transfer function "G" from input "u1" to output ... 1 y1: ----- s + 1 とあります。 Windowsの場合 ttp://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html#110906 こちらをご覧ください。
182 名前:octave for windows メモの筆者 mailto:sage [2011/10/13(木) 17:10:32.55 ] >>181 1 y1: ----- s + 1 が崩れて表示されていますね。すみませんm(__)m。
183 名前:octave for windows メモの筆者 mailto:sage [2011/10/13(木) 17:18:17.15 ] >>181 何度もすみません。 **************************** Windowsの場合 ttp://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html#110906 こちらをご覧ください。 **************************** は WindowsでOctave-3.4.2でcontrol packageなどのOctave-forgeを使いたい場合 ということです。舌足らずな説明ですみません。
184 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/13(木) 23:33:20.68 ] 早速ありがとうございます。 使ってみます。 ginputのバッティングなんかも解消できているといいのですが。
185 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/14(金) 15:57:12.92 ] >>180 OctaveのはMatlab互換なので馴れてしまえば後々で便利です 例えば化学の一次反応を (d/dt)x=k(x0-x) と置きましょう。xは反応量、x0は初期量、kは反応速度定数(毎秒)です。 式を展開すると (1/k)(d/dt)x=x0-x x0=(1/k)(d/dt)x+x これをラプラス変換すると X0=(s/k)X+X=(s/k+1)X X0=((s+k)/k)X 伝達関数G(s)は(伝達関数はOutput/Input) G(s)=X/X0=k/(s+k) これを普通にラプラス逆変換すると x/x0=k exp(-kt) ですが、Octaveで計算すると、k=0.02 として Octave:4> k=0.02; G=tf([k] [1,k],0); Octave:5> [y,t]=step(G);plot(t,y); であっさり描けてしまいます 時定数は1/k=1/0.02=50秒で、図でも50秒で1-exp(-1)=63%にまで上がってるはずです。
186 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/15(土) 13:48:46.19 ] >>185 >>180 のヒトは 伝達関数G(s)は(伝達関数はOutput/Input) G(s)=X/X0=k/(s+k) で Octave:4> k=0.02; G=tf([k] [1,k],0); を Octave:4> k=0.02; G=k/(s+k) で書ければいいなぁ って言っているんだと思います。 Octave3.4だと出来るのか。
187 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/15(土) 14:33:56.65 ] >>186 それはわかってるつもりなのですが 伝達関数は計算してから入れればいいという考え派なので しかし制御の本がScilabばっかりなのは 伝達関数の計算なんかめんどい&scicos(5.2以降ならxcos)で制御を勉強したい という人が多いのでしょうね
188 名前:octave for windows メモの筆者 mailto:sage [2011/10/17(月) 07:33:56.72 ] >>186 >Octave3.4だと出来るのか。 正確にいうと最近のControl package でできるようになり, それにはoctaveが3.4以上である必要があるということのようです。 ところで3.4.2 for winodws用のOctave-forge Packageが更新されました。 wiki.octave.org/wiki.pl?OctaveForWindows を参考にしてください。Control package もバージョンが あがっているようです。
189 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/17(月) 20:24:04.79 ] >>188 すいません。 octave.sourceforge.net/ のWindows installer (Octave and Octave-Forge) の方は更新されないんですか?
190 名前:octave for windows メモの筆者 mailto:sage [2011/10/18(火) 08:54:52.33 ] >>189 される見込みは,残念ながら今のところありません。 MaintainerのBenjamin Lindnerさんが5月ごろから,svnの作業ツリーやML などから,姿を消しておられます。 私は,ビルドしかできないので3.4.2を自分のWebにのせたら, Nitzan Araziさんが7zipによるアーカイブと octave-forge のパッケージを (7 zip)作ってくださいました。
191 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/19(水) 20:34:16.86 ] lsode関数で微分方程式を解いて時間経過を見るとき 変数xが負の値をとる場合にはゼロになるように条件を加えたいのですが そういったことは出来るのでしょうか。
192 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/20(木) 12:35:32.94 ] >>191 マニュアルを読む限りではそのようなオプションはないと思います。 数学的な工夫でできるかもしれませんが。すみませんがわかりません。
193 名前:名無しさん@お腹いっぱい。 [2011/10/21(金) 23:07:54.32 ] >>188 Octave3.4.2_gcc4.5.2\share\octave\packages\control-2.1.54 の中身を見ているのですが、 tf2ss とか sysout とか、その変の関数がゴッソリと無くなっているのは なんか理由があるんでしょうかね? s=tf("s") で G=1/s , H = 1/(s^2+1) , GH=G*H っていう記述が出来るようになったのは有りがたい反面、使い慣れた関数が 無くなっているのはちょっと寂しい。 (matlabにはあるのに)
194 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/24(月) 20:16:09.57 ] >>193 本家のoctave-dev ML (Octave-forgeのメーリングリスト)で聞くしか ないでしょう。たしかMaintainer が最近変わったようなので。
195 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/24(月) 21:27:34.49 ] >>193 tf2ssはssでイケルっぽい
196 名前:octave for windows メモの筆者 mailto:sage [2011/10/27(木) 07:58:32.39 ] Mingw Octave-3.4.3 binaries for testing on windows - Updated octave.1599824.n4.nabble.com/Mingw-Octave-3-4-3-binaries-for-testing-on-windows-Updated-td3942303.html
197 名前:名無しさん@お腹いっぱい。 [2011/10/29(土) 15:09:02.44 ] ↑のやつですが、Win7 x64でcommunications-1.1.0がmakeでエラーを吐いてインストールできません。 communicationsを使いたいので、どなたか情報を持ってる方お願いします pkg install signal image optim miscellaneous struct specfun -auto -forge -global (これはOK) pkg install communications -auto -forge -global ov-galois.o:C:\Users\hoge\AppData\Local\Temp\oct-2\communications\src/ov-galois.cc:556: undefined reference to `H5Gcreate' ov-galois.o:C:\Users\hoge\AppData\Local\Temp\oct-2\communications\src/ov-galois.cc:567: undefined reference to `H5Screate_simple' (snip) collect2: ld returned 1 exit status make: *** [gf.oct] Error 1 'make' returned the following error: make: Entering directory `/tmp/oct-2/communications/src' (snip) make: Leaving directory `/tmp/oct-2/communications/src' error: called from `pkg>configure_make' in file C:\Octave\Octave3.4.3_gcc4.5.2\share\octave\3.4.3\m\pkg\pkg.m near line 1339, column 9 error: called from: error: C:\Octave\Octave3.4.3_gcc4.5.2\share\octave\3.4.3\m\pkg\pkg.m at line 790, column 5 error: C:\Octave\Octave3.4.3_gcc4.5.2\share\octave\3.4.3\m\pkg\pkg.m at line 361, column 9
198 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/30(日) 05:18:24.99 ] >>197 回線が細いので確認できませんが, Octave3.4.3_gcc4.5.2_20111025.7zにくわえて Octave3.4.3_gcc4.5.2_pkgs_20111026.7zもいれて pkg rebuild -auto でいけませんか。 不要なものはpkg uninstallで消す。 Octave3.4.3_gcc4.5.2_pkgs_20111026.7zにすでにoctave-forgeは入っていて, それを再認識させるには pkg installでなく,pkg rebuildを使います。
199 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/31(月) 01:21:57.38 ] >>199 すみません、最初にpkg rebuild -autoしたのにどうしてもダメだと思ってましたが octaveの再起動が必要なことに今の今まで気づいてませんでした;; どうもお騒がせしました。
200 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/02(金) 10:02:30.70 ] FreeMATが4.0から4.1に上がりました freemat.sourceforge.net/ Octave互換モードも出来たらしいです FreeMATとOctaveを統合してはどうかという話もありますがはたして
201 名前:octave for windows メモの筆者 mailto:sageg [2011/12/03(土) 10:38:58.08 ] >>200 情報ありがとうございます。確かにOctave Integrationとありますね。 OctaveのMLでは,なにも話しは出ていませんが,どうなんでしょうね。 Octave MLでは3.6のリリースに向けて議論がなされています。 GUIも開発されつつあります。
202 名前:octave for windows メモの筆者 mailto:sageg [2011/12/03(土) 20:10:07.47 ] >>200 Octave のMLで情報を流してみました octave.1599824.n4.nabble.com/FYI-FreeMat-4-1-includes-Octavee-Integration-td4151738.html レスポンスがどうなるかですね。
203 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/04(日) 10:21:08.63 ] FreeMatって G=1/(1+0.1*s) bode(G) みたいな事はできるんですかね? Octaveは最新版でやっと出来るようになったみたいですが。
204 名前::octave for windows メモの筆者 mailto:sage [2011/12/05(月) 07:09:35.32 ] control-2.2.2 released だそうです。 octave.1599824.n4.nabble.com/control-2-2-2-released-in-package-forum-please-upload-td4157808.html octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/control/NEWS?revision=9260&view=markup
205 名前::octave for windows メモの筆者 mailto:sage [2011/12/08(木) 07:03:41.15 ] control-2.2.3 released in package forum - please upload octave.1599824.n4.nabble.com/control-2-2-3-released-in-package-forum-please-upload-td4169495.html [2] octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/control/NEWS?revision=9303&view=markup
206 名前:octave for windows メモの筆者 mailto:sage [2011/12/09(金) 12:18:21.65 ] NizanさんのWindows版Octave-3.4.3のバイナリがOctaveForgeにアップロード されました。 https://sourceforge.net/projects/octave/files/Octave_Windows%20-%20MinGW/Octave%203.4.3%20for%20Windows%20MinGW%20Installer/
207 名前:名無しさん@お腹いっぱい。 [2011/12/10(土) 02:50:59.58 ] >>206 おぉお。 ついに! ありがとうございます
208 名前:octave for windows メモの筆者 mailto:sageg [2011/12/10(土) 17:54:33.57 ] >>206 >>207 今回のバイナリーには,インストーラーがありません。そのため上記のページに 詳しい解説とインストール方法が記載されています。英語なので,拙Webページに自分の 改定を少し加えた翻訳の解説とインストール方法を記載しましたので,ご利用 ください。 www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html#111210
209 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/11(日) 23:57:09.22 ] cygwin(install all)いれるときに一緒に入れたoctave使いたい。 初期設定ファイルいじらずに、初めて起動した。 startxからoctave起動して、簡単な計算とかはできるんだけど グラフがまったく出力されない。↓こんなのでる。 gnuplotにパス通してないから?(´・ω・`) octave:1> x=[0,0.2,0.4] x = 0.00000 0.20000 0.40000 octave:2> plot(x,sin(x)) 78 [main] octave-3.4.2 2720 exception::handle: Exception: STATUS_ACCESS_VIOLATION 1712 [main] octave-3.4.2 2720 open_stackdumpfile: Dumping stack trace to octave-3.4.2.exe.stackdump error: popen2: popen2 (child): unable to start process -- Bad address error: called from: error: /usr/share/octave/3.4.2/m/plot/__gnuplot_open_stream__.m at line 30, column 44 error: /usr/share/octave/3.4.2/m/plot/__gnuplot_drawnow__.m at line 72, column 19 error: Invalid call to strcat. Correct usage is: -- Function File: strcat (S1, S2, ...) error: called from: error: /usr/share/octave/3.4.2/m/help/print_usage.m at line 87, column 5 error: /usr/share/octave/3.4.2/m/strings/strcat.m at line 92, column 5 error: /usr/share/octave/3.4.2/m/plot/__gnuplot_get_var__.m at line 113, column 11 error: /usr/share/octave/3.4.2/m/plot/__go_draw_axes__.m at line 40, column 18 error: /usr/share/octave/3.4.2/m/plot/__go_draw_figure__.m at line 167, column 19 error: /usr/share/octave/3.4.2/m/plot/__gnuplot_drawnow__.m at line 86, column 5
210 名前:209 mailto:sage [2011/12/12(月) 00:01:14.96 ] 過去レスにサンプルまでいっしょのレスがありました。驚きです。 cygwinのダウングレードで解決されていましたが、 ダウングレードはするつもりがないので相性がよくなるまで待ちます。
211 名前:octave for windows メモの筆者 mailto:sageg [2011/12/12(月) 05:14:49.53 ] >>210 CygwinのMLを見ているとOctaveとの相性の悪い1.7.9に代わって1.7.10が テストリリースされているようです。まだ,試していませんが問題が解決して いることを願います。
212 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/13(火) 21:31:23.85 ]
213 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/13(火) 21:31:51.59 ] >>208 すいません s=tf("s") bode(s) ってやるとボード線図は出るのですが、出てきたボード線図のグラフィックウインドウ上でマウスをドラッグしたり ホイールをまわしたりすると、落ちちゃいます。 僕の環境(WinXP32bit)だけかもしれませんが。 普通にplotだと、出力されたグラフをマウスでいじっても大丈夫なんですが。 www.42ch.net/UploaderSmall/source/1323769033.png
214 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/15(木) 09:13:34.34 ] Mingw正式リリースの3.2.4を使っると巨大データでこけるので困っていました (Memory Exhaustedのエラーを吐く) 特にWindows7 64bitだとすごくこけやすかったので (理論的には2GBまで大丈夫なはずなのに500MBぐらいのメモリー使用でこける) 環境を変えるのはあまり好きでは無かったのですが 3.4.3を入れてみたら全くこけなくなりました、 このバージョンなら2GBまでこけないかも 助かりました OpenBLASは ttp://www.tatsuromatsuoka.com/octave/Eng/Win/ のを使わせていただきました 自分でmakeするとエラーが出たので
215 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/15(木) 19:28:05.14 ] >>214 MemoryExhaustedは3.2.4でも悩まされてるけど、 3.4.3は、さらに起きやすくなった。実際、同じスクリプトが動かなくなった。
216 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/16(金) 09:38:28.61 ] >>215 こちらはメモリーを4GB積んでます それとWin7 32bit では試してないので WinXP 32bit で 3.2.4 Win7 32bit で 3.2.4 Win7 64bit で 3.2.4 WinXP 32bit で 3.4.3 Win7 32bit で 3.4.3 Win7 64bit で 3.4.3 この6つの組合せとメモリー搭載量で起きやすい、起きにくいがあるのかもしれません よっぽどMigw64bit でmakeしようと思ったけど、色々挫折した(笑 3.4.3を試そうと思ったのはOctaveのMailingリストで、3.2.4から3.4に上げれば Memory Exhaustedが出ないよという書き込みがあったから
217 名前:名無しさん@お腹いっぱい。 [2011/12/18(日) 02:33:58.07 ] iphone用octaveでないかなー
218 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/18(日) 11:03:15.98 ] >>217 そこでLinuX zaurusですよ
219 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/19(月) 10:36:54.47 ] Scilab 5.4.1のalpha版が出ました www.scilab.org/products/scilab/download/5.4.0-alpha-1 5.3.3は使っていてbugだらけだったので、少しはましになるかどうか (xcos の AFFICH_mでリアルタイムで数値が表示されないのは 仕様じゃなくてbugだったのか orz)
220 名前:octave for windows メモの筆者 mailto:sage [2011/12/20(火) 03:33:44.62 ] 最近,HDDが壊れたThink Pad X40にUSB HDDを利用してUbuntu 11.10をいれて触っています。 Ubuntuのソフトウェアセンターのoctaveは3.2.4なので,3.4.3をビルドしてみました。 依存ライブラリが揃っており,Synapticパッケージマネージャーで簡単にインストールできました。 Windowsでのビルドの経験が役にたって少々の試行錯誤で無事ビルドできました。 なかなか,いい感じです。しかし,ビルドツールがUnbuntu上ではWindows上より はるかに速いのでおどろきました。 また,3.6.0のプレリリースである3.5.90もビルドできました。
221 名前:octave for windows メモの筆者 mailto:sage [2011/12/20(火) 03:37:19.84 ] 最近,HDDが壊れたThink Pad X40にUSB HDDを利用してUbuntu 11.10をいれて触っています。 Ubuntuのソフトウェアセンターのoctaveは3.2.4なので,3.4.3をビルドしてみました。 Windowsでのビルドの経験が役にたって少々の試行錯誤で無事ビルドできました。 なかなか,いい感じです。 しかし,ビルドツールがUnbuntu上ではWindows上よりはるかに速いのでおどろきました。 また,3.5.90のビルドもできました
222 名前:octave for windows メモの筆者 mailto:sage [2011/12/21(水) 07:20:59.27 ] 最近,HDDが壊れたThink Pad X40にUSB HDDを利用してUbuntu 11.10をいれて 触っています。Ubuntuのソフトウェアセンターのoctaveは3.2.4なので, 3.4.3をビルドしてみました。 Windowsでのビルドの経験が役にたって少々の試行錯誤で無事ビルドできました。 なかなか,いい感じです。しかし,ビルドツールがUnbuntu上ではWindows上より はるかに速いのでおどろきました。
223 名前:octave for windows メモの筆者 mailto:sage [2011/12/21(水) 07:22:37.20 ] 最近,HDDが壊れたThink Pad X40にUSB HDDを利用してUbuntu 11.10をいれて 触っています。Ubuntuのソフトウェアセンターのoctaveは3.2.4なので, 3.4.3をビルドしてみました。 Windowsでのビルドの経験が役にたって少々の試行錯誤で無事ビルドできました。 なかなか,いい感じです。しかし,ビルドツールがUnbuntu上ではWindows上より はるかに速いのでおどろきました。
224 名前:octave for windows メモの筆者 mailto:sage [2011/12/23(金) 10:37:59.12 ] >>220 -223 2chブラウザの特性を知らず同じ書き込みを何度もしてすみません。m(__)m
225 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 10:49:14.91 ] >>214 >OpenBLASは >ttp://www.tatsuromatsuoka.com/octave/Eng/Win/ >のを使わせていただきました >自分でmakeするとエラーが出たので MinGW上ではふつうにビルドしただけではエラーになるようです。 同時にできる静的ライブラリから,次の例のようにしてdllを作成しました。 i686-pc-mingw32-gcc -shared-libgcc -shared \ -Wl,--enable-auto-import \ -Wl,--enable-runtime-pseudo-reloc-v2 \ -Wl,--allow-multiple-definition \ -Wl,--out-implib=libblas.dll.a -o libblas.dll \ -Wl,--output-def=libblas.exp \ -Wl,--whole-archive libopenblas_nehalemp-r0.1alpha2.4.lib \ -Wl,--no-whole-archive -lgfortran こうしてできたものを ttp://www.tatsuromatsuoka.com/octave/Eng/Win/ にアップしました。
226 名前:octave for windows メモの筆者 mailto:sage [2011/12/23(金) 10:51:16.90 ] >>225 i686-pc-mingw32-gcc -shared-libgcc -shared \ で始まる行が一行ずつ開いているのは詰めてください。m(__)m
227 名前:octave for windows メモの筆者 mailto:sage [2011/12/23(金) 12:16:03.65 ] >>255 たびたびすみません。 >MinGW上ではふつうにビルドしただけではエラーになるようです。 Cygwin上でふつうにビルドしただけではMinGWでエラーになるようです。 で,CygwinのMinGW64の32bit版GCCで静的ライブラリからリンクしなおして, dllを作成しています。