[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 03/17 14:42 / Filesize : 146 KB / Number-of Response : 333
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/28(水) 22:13:01 ]
知る人ぞ知る強力なデータ解析ツール octave ...

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

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

そのPart 2です

前スレ

データ解析ツールoctaveを語ろう
pc12.2ch.net/test/read.cgi/unix/1086016412/

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を作成しています。



228 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 13:13:13.43 ]
>>227
どうもありがとうございました

dllのビルドがおかしかったんだ

229 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 13:22:53.36 ]
>>224
あ、おかえりなさいw

普通は自動追尾するはずなんですが、

板欄→板一覧の更新
スレ欄→スレ一覧の更新

を手動でやればいいんでしたっけか。
自分も適当にやったので、本当はどうすればいいのか、実はよくわかってないですw

というわけなんですが、
>>213
の状態になるのは僕の環境だけなんでしょうかねぇ?


230 名前:octave for windows メモの筆者 mailto:sage [2011/12/23(金) 16:04:18.95 ]
>>213 >>229
再現確認しました。
現在配布のバイナリは,share\octave\site\m\startup\octaverc
でfltkがgraphics_toolkitに指定してあります。

graphics_toolkit gnuplot
でやると落ちないようです。
gnuplotのmultiplotを使っているので,マウスぐりぐりは
変なことになりますが,落ちることはないようです。

fltkで落ちるのは,バグかなと思います。
ちょっと調べてみます。

231 名前:octave for windows メモの筆者 mailto:sage [2011/12/23(金) 16:04:31.43 ]
>>213 >>229
再現確認しました。
現在配布のバイナリは,share\octave\site\m\startup\octaverc
でfltkがgraphics_toolkitに指定してあります。

graphics_toolkit gnuplot
でやると落ちないようです。
gnuplotのmultiplotを使っているので,マウスぐりぐりは
変なことになりますが,落ちることはないようです。

fltkで落ちるのは,バグかなと思います。
ちょっと調べてみます。

232 名前:octave for windows メモの筆者 mailto:sage [2011/12/23(金) 16:06:37.91 ]
また,2重投稿になってるm(__)m

233 名前:octave for windows メモの筆者 mailto:sage [2011/12/23(金) 16:16:09.81 ]
>>230
subplotが怪しいのかなあとおもいましたが,単にsubplotしただけではfltkでの
グラフ落ちませんでした。Controlパッケージのせいなのかな?
ちょっと見当つかないですが,余力があればBug Trackerにあげてみます。
それで解決するかはわかりませんが。

234 名前:octave for windows メモの筆者 mailto:sage [2011/12/23(金) 16:32:41.70 ]
>>233
bug trackerにあげときました。
savannah.gnu.org/bugs/?35159


235 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 18:01:28.68 ]
>>234
ありがとうございます。
お世話かけます。


236 名前:octave for windows メモの筆者 mailto:sage [2011/12/24(土) 12:24:11.51 ]
Octave-3.5.91がでました。
ttp://octave.1599824.n4.nabble.com/Octave-3-5-90-snapshot-available-for-ftp-tp4200255p4230198.html
3.6.0へ向けての最後のスナップショットとなると思います。


237 名前:octave for windows メモの筆者 mailto:sage [2011/12/24(土) 18:57:01.99 ]
少し前ですが,Octave のWikiが新しくなりました。 
ttp://www.octave.org/wiki/index.php?title=Main_Page
の左の Navigation の index からいろいろなページに飛べます。



238 名前:octave for windows メモの筆者 mailto:sage [2011/12/25(日) 05:39:00.48 ]
ttp://sourceforge.net/projects/octave/files/Octave_Windows%20-%20MinGW/Octave%203.4.3%20for%20Windows%20MinGW%20Installer
/
にインストーラー版 Octave-3.4.3 for windowsがおかれました。

ttp://gnu-octave-repository.2306053.n4.nabble.com/Installer-for-mingw32-Octave-3-4-3-td4225772.html

Octave-forgeは含まれないようなので,従来からあるOctave-Forgeを利用される
方は Octave3.4.3_gcc4.5.2_pkgs_20111026.7z の内容をを上書きして,
設定する必要があると思います。

239 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 22:30:58.01 ]
本当に初歩的な質問ですが、octaveで乱数(メルセンヌツイスタ)を使いたいのですが、その乱数がcファイルなので、どうすればoctaveで使えるのですか?
因みに目的はメルセンヌツイスタを用いた乱数発生で円を求める奴です

240 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/26(月) 10:42:26.06 ]
>>239

help rand

を見ると、現在のOctaveのrandで用いているのは
擬似Mersenne Twisterのようです

241 名前:octave for windows メモの筆者 mailto:sage [2011/12/26(月) 13:59:09.11 ]
>>239
初歩的な質問でなく,かなり高度な質問(バリア)も高い質問です。

www.gnu.org/software/octave/doc/interpreter/Oct_002dFiles.html#Oct_002dFiles

を読んでoct ファイルを作る。C++だから,ラッパーを書く必要があるかも。
MATLABでも使うなら,mexがいいかもしれない。

www.gnu.org/software/octave/doc/interpreter/Mex_002dFiles.html#Mex_002dFiles

英語だから苦労するかもしれないけど,勉強だと思って。

242 名前:octave for windows メモの筆者 mailto:sage [2011/12/26(月) 14:00:58.82 ]
>>241外した答えになっているような気がする。許してください。

243 名前:239 mailto:sage [2011/12/26(月) 16:06:13.41 ]
>>240
ごめんなさい、メルセンヌツイスタ縛りなのでrand関数は不可です
あくまでも公式サイトから落としたメルセンヌツイスタプログラムを用いて計算しなければならないので…

てか何故PCから見れないんだ、このスレ(´・ω・`)

244 名前:octave for windows メモの筆者 mailto:sage [2011/12/26(月) 17:11:53.04 ]
いまは↓
ttp://toro.2ch.net/test/read.cgi/unix/1256735581/
で見れるようです。私もある方に教えてもらいました。

245 名前:octave for windows メモの筆者 mailto:sage [2011/12/26(月) 17:19:19.18 ]
>>243

ttp://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/CODES/mt19937ar.c
ソースはこれですか。
コンパイルして,実行形式を作る。
そのあと,Octaveから system コマンドをつかって実行して,
load コマンドなどでOctaveの変数に取り込むのが手っ取り早いかと。


246 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/26(月) 18:33:11.68 ]
それです、正にそれです

流石に馬鹿過ぎる質問ですがコンパイルと実行ファイル制作ってどうするんですか?
コマンドプロンプトを使ってやるのですか?
それともoctave上でコンパイルするのですか?

あ、当然ググりました

247 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/26(月) 19:02:34.54 ]
>>246
課題?

$ gcc -o mt19937ar mt19937ar.c
$ ./mt19937ar
1000 outputs of genrand_int32()
1067595299 955945823 477289528 4107218783 4228976476
3344332714 3355579695 227628506 810200273 2591290167
(以下略)



248 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/26(月) 23:46:31.06 ]
>>247
無事に窓を用いてコンパイルは出来ました(mt19937ar.exe)
けどそこからがよく分かりません…
system関数?load関数?

因みにこれは微妙に課題です
ゼミでoctaveを使うことになったのでその予行練習課題みたいなものです

249 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 00:10:48.73 ]
>>239
確認ですが、その問題というのは、

0〜1の乱数を2個発生させる。(r1,r2)
r1^2+r2^2< 1 だったら カウンタを1増加させる。

この作業を100万回行う。
カウンタの値/100万×4がπになるはず

っていう問題ですかい?

問題を丸投げするんだから、情報を小出しにせず、
堂々と丁寧に全部書くことをオススメします。




250 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 00:40:58.98 ]
了解しました

課題は2次元球(円)から10次元球までの体積(面積)をoctaveを用いて解くものです
条件としましては
・乱数を用いること、その際条件としてメルセンヌツイスタを用いる
・半径は1(x1+x2+x3+…+xn≦1を満たす、但しx1,x2,x3,…,xnはメルセンヌツイスタを用いて発生させた乱数とする)
・乱数発生回数は問わない(但し回数は考察対象とする)

因みに背景としましては、自分卒研にてベイズ推計を用いての逆問題について研究していますので、その際用いられるMCMC法でメルセンヌツイスタ乱数およびoctaveが必要なので、先生から予行練習課題としてこの課題が出されたのです

251 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 00:46:21.14 ]
訂正です
乱数の範囲は[0,1]です
そして体積はV=(octaveで求めた値)×2^n(n:次元)で求めるものとします

一応octaveの基本はある程度理解をしたのですが、高度なのはさっぱり分からないのでここで聞きました

252 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 00:49:10.19 ]
書き忘れた…orz
>>249で書いてるのと一緒です

オレの馬鹿、連レスサーセンです

253 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 01:24:12.38 ]
>>252
多分、方法は2つあって、

1) メルセンヌツイスタのアルゴリズムをOctaveで書き下ろして使う

2) dirk.eddelbuettel.com/code/octave-mt.html を読む

のどっちかじゃないすか?

#そもそもなんで、この問題をわざわざoctaveでやるのかの意味がよくわからんです。
 octaveでどんな問題でも解けるように というトレーニングなら1)の方法でしょーね。



254 名前:octave for windows メモの筆者 mailto:sage [2011/12/27(火) 06:47:11.09 ]
>>253 番さんの
2)の方法を使うためには,>>241のoctファイルを作成する方法をOctaveの
マニュアルでよんでください。
randmt.cc をダウンロードして
mkoctfile コマンドをつかって,Octファイル作ればいいのですが,
なんかエラーがでてしまいます。
octave:2> mkoctfile randmt.cc
randmt.cc:42:17: warning: inline function 'uint32 randomMT()' used but never defined
randmt.o: In function `randomMTunit':
E:\usr\Tatsu\test\octave/randmt.cc:48: undefined reference to `randomMT'
randmt.o: In function `Z11FrandmtseedRK17octave_value_listi':
E:\usr\Tatsu\test\octave/randmt.cc:105: undefined reference to `seedMT'
randmt.o: In function `randomMTunit':
E:\usr\Tatsu\test\octave/randmt.cc:48: undefined reference to `randomMT'
E:\usr\Tatsu\test\octave/randmt.cc:48: undefined reference to `randomMT'
E:\usr\Tatsu\test\octave/randmt.cc:48: undefined reference to `randomMT'
E:\usr\Tatsu\test\octave/randmt.cc:48: undefined reference to `randomMT'
E:\usr\Tatsu\test\octave/randmt.cc:48: undefined reference to `randomMT'
randmt.o:E:\usr\Tatsu\test\octave/randmt.cc:48: more undefined references to `randomMT' follow
collect2: ld returned 1 exit status

うーむ。

255 名前:octave for windows メモの筆者 mailto:sage [2011/12/27(火) 06:57:19.79 ]
>>254 ページをよく読んでいなかったorz。

Download code.からoctave-mt.tar.gzをダウンロードする。
適当なフォルダに解凍する。
たとえば,E:\usr\Tatsu\test\octave\octave-mt に解凍したら,

octave:3> cd E:\usr\Tatsu\test\octave\octave-mt
octave:4> system('make')
のようにすると

gcc -Wall -O6 -c -o cokus.o cokus.c
mkoctfile randmt.cc cokus.o
randmt.cc:42:17: warning: inline function 'uint32 randomMT()' used but never defined
ln -sf randmt.oct randmtseed.oct
ln -sf randmt.oct randmtn.oct
ans = 0

とoctファイルができる。
helpを読むには,

octave:5> help randmt
とする。


256 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 12:06:42.27 ]
やってみました

octave:1> cd "C:/Documents and Settings/DateMasa/デスクトップ/MT"
octave:2> system('make')
mkoctfile randmt.cc cokus.o
randmt.cc:42: warning: inline function `uint32 randomMT()' used but never define
d
c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: unrecogniz
ed option '--enable-runtime-pseudo-reloc-v2'
c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: use the --
help option for usage information
collect2: ld returned 1 exit status
make: *** [randmt.oct] Error 1
ans = 2

こんな感じのエラーが出てしまいました…
確認で一応 help randmt を実行しましたが「そんな関数なんてねーよ」と吐き出してきました

後マニュアルに書いてあるとおりmkoctfileでccファイルをoctファイルにしてみようと試みたのですが
これもエラーが出てしまいました

257 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 12:23:14.32 ]
因みにmkoctfileでのエラーは次のとおりです

octave:6> mkoctfile randmt.cc
g++: randmt.cc: No such file or directory
g++: no input files
g++: randmt.o: No such file or directory



258 名前:octave for windows メモの筆者 mailto:sage [2011/12/27(火) 12:50:27.95 ]
>>256 >>257 パスにスペースがあるとだめですよ。

だから
cd "C:/Documents and Settings/DateMasa/デスクトップ/MT"
ではだめです。

259 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 13:54:13.73 ]
アドバイスを参考にスペースが入らないよう解凍位置を変更してみました

octave:3> cd C:/MT-file
octave:4> system('make')
mkoctfile randmt.cc cokus.o
randmt.cc:42: warning: inline function `uint32 randomMT()' used but never define
d
c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: unrecogniz
ed option '--enable-runtime-pseudo-reloc-v2'
c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: use the --
help option for usage information
collect2: ld returned 1 exit status
make: *** [randmt.oct] Error 1
ans = 2

これでhelp randmtをやっても「だからねーって言ってるだろ」とエラーが出てしまいました
どこが違うのか…






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

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

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