→ worcdlo: 把資料存硬碟,直接對硬碟做讀寫,你的ram放不下這麼大07/01 13:27
→ worcdlo: 的資料,可惜這樣一定很慢07/01 13:27
QQQ還是說只能求助大型電腦?
※ 編輯: ocf001497 (114.43.111.160), 07/01/2017 13:29:26
所以w大的意思是就算修改程式碼也沒辦法直接跑嗎?
※ 編輯: ocf001497 (114.43.111.160), 07/01/2017 13:32:23
推 sunev: 先學會怎麼估計一個矩陣所佔的記憶體大小吧07/01 13:43
→ sunev: 首先每個矩陣元佔8 bytes,如果是複數還要再乘207/01 13:44
→ sunev: 所以一個10000*10000的矩陣就需要07/01 13:45
→ sunev: 10000*10000*8 bytes = 8*10^8 bytes = 763MB07/01 13:46
推 sunev: 70000的方陣就要36.5GB07/01 13:48
推 sunev: 現在組一台128G的PC不是太困難的事情,但速度也是個問題07/01 14:15
→ sunev: 解eigenvalue是n^3,你把解一萬的時間乘上343倍就是解七萬07/01 14:16
→ sunev: 的時間,自己考量吧。一個比較合理的做法是只看前幾個07/01 14:17
→ sunev: 會快很多。07/01 14:17
推 profyang: 問題是那些point都要畫上去那個圖本身就很大了 除非畫好07/01 14:22
→ profyang: 幾條線就存成點陣圖 然後新的點在畫上去 總之應該不可能07/01 14:22
→ profyang: 所有線一次用for loop把他plot出來07/01 14:23
推 profyang: 然後另外一個更重要的是 你幾萬條線在同一張圖上是要怎07/01 14:31
→ profyang: 麼讓人看清楚啦...07/01 14:31
哦哦不好意思忘記說,我想PLOT出來的東西就是要呈現
超多線全部疊在一起的連續感,因為有特殊的東西可以看
所以真的只能用大型電腦跑嗎 還是也無法QQ
※ 編輯: ocf001497 (114.43.111.160), 07/01/2017 14:36:54
還想請問一下存成點陣圖具體的做法是啥呢 謝謝!!
※ 編輯: ocf001497 (114.43.111.160), 07/01/2017 14:39:00
推 profyang: 那就照1F說的 分好幾組存起來 大概1400個row存一個檔?07/01 14:38
→ profyang: 然後每次畫1400條線上去 畫好後存成點陣圖 之後再把新的07/01 14:39
→ profyang: 1400條線畫到之前存的點陣圖上07/01 14:39
感謝回覆!
但現在我有點卡住的地方是 因為我每次對角化出來的東西都是10000x1的column
如果要畫圖的話實際上是畫
[ [v_0] [v_0.01] ... [v_0.12] ]這種12個10000x1 column排在一起後的row
也就是說我沒辦法在做一次計算就存一個row
不知道這該怎麼解決呢
謝謝!
※ 編輯: ocf001497 (114.43.111.160), 07/01/2017 14:45:43
→ profyang: 用saveas存成.bmp或.png檔然後用imread讀吧07/01 14:42
→ profyang: plot 1400條線=>saveas成.bmp=>清除內存=>imread剛剛的07/01 14:44
→ profyang: .bmp=>plot新的1400條線=>saveas新的.bmp覆蓋過去.....07/01 14:45
另外out of memory我想說是不是因為那個要解的矩陣太大
而不是因為最後那個[ [v_0] [v_0.01] ... [v_0.12] ]太大
因為這個比要解的10000x10000的矩陣小很多
謝謝
※ 編輯: ocf001497 (114.43.111.160), 07/01/2017 14:49:12
推 profyang: 所以要存到硬碟阿 每次解出一組v 然後這些v每1400個就存07/01 14:50
→ profyang: 一個檔 然後算出新的v 再每1400個元素存起來到剛剛那些07/01 14:50
→ profyang: 檔案中07/01 14:50
→ profyang: 喔對耶 我忘記你要解eigen的矩陣本身就70000*70000了...07/01 14:52
哦哦! 感謝! 大概知道概念了
但想請問一下如果是70000x70000是不是連寫出這個矩陣都有問題...
※ 編輯: ocf001497 (114.43.111.160), 07/01/2017 14:55:34
推 profyang: 是阿...除非你的70000*70000矩陣式很多零的矩陣可以用 07/01 14:56
→ profyang: sparse矩陣可能還有辦法07/01 14:57
→ profyang: 如果是general的矩陣可能就無法了 07/01 14:57
哦哦! 我的矩陣應該蠻多零的!
所以可以用一樣的方式 只是我把矩陣建起來的時候不用正常的矩陣
用sparse就可以嗎
謝謝
※ 編輯: ocf001497 (114.43.111.160), 07/01/2017 15:02:12
→ profyang: 但這個我自己沒試過就是了 原理大致上好像是拿硬碟當ram07/01 15:01
→ profyang: 來用?不是很熟07/01 15:02
推 profyang: 喔可以用sparse那就用sparse吧07/01 15:11
好! 我來試試 感謝
※ 編輯: ocf001497 (49.214.16.125), 07/01/2017 15:25:06
→ LiamIssac: 用sparse要確定0夠多 不然會更慢 以前有問過這問題 07/01 17:11
→ LiamIssac: 應該說不會更有效率 07/01 17:11
推 imafsb: plot很吃記憶體,寫迴圈有作圖的話作完要把handle關掉 07/03 17:29
推 imafsb: 我都用export_fig取代saveas存圖 07/03 17:34