Re: [討論] 好習慣已回收
※ 引述《QQ29 (我愛阿蓉)》之銘言:
: 因為之前沒碰matlab 只學過C++
: 一開始認知matlab沒有形態宣告這件事
: 你要一個變數直接 a=10; b=3.14159;
: 用得很開心
: 直到最近一直遇到out of memory
: 我不知道為什麼明明記憶體還夠空間 他卻一直出現這
: 於是我想一想
: a=10 matlab給他型態都會是double
: 是不是大家都會寫成 a=int32(10);
: 或是配置array也都是 a=single(zeros(m,n));
: 刻意轉型 減低記憶體使用量?
: 現在遇到這個問題 使得整個程式好像都要刻意去轉型 好像有點麻煩@@
: 寫matlab都要養成這習慣嘛? 還是有其他辦法....
: 另外想問out of memory跟 虛擬記憶體有關嘛? 不知道該怎麼解決 謝謝
我想你誤解了它對記憶體的操作,請研究下面的程式,應該對你有所幫助
clear all;clc;
i=1;
[u s]=memory;
while u.MemAvailableAllArrays>190e6
eval(['ret' sprintf('%02d',i) ...
'=zeros(round(u.MaxPossibleArrayBytes/8*.996),1);']);
[u s]=memory;
i=i+1;
end
memory
這個程式會模擬完全使用記憶體空間的情況,詳細的原因可以help memory
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.81.52
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章