回答
@Itamar提供了有關如何MATLAB需要連續的內存來存儲陣列很好的意見,以及有關在內存管理的良好做法,如分塊數據。特別是他關聯的內存管理技術說明是一個很好的資源。無論你的機器有多少內存,這些都是明智的事情。儘管如此,MATLAB的許多應用程序永遠不會被這些技巧所解決,因爲數據集太大了;而且擁有更多內存的機器也可以解決這些問題。 (順便說一下,有時只是購買一臺擁有更多內存的新機器比支付MATLAB開發人員進行所有內存優化更便宜 - 但這是由您決定的) 。
用MATLAB來訪問大量內存並不困難。如果您的Windows或Linux計算機具有64GB(或更高) - 顯然需要運行64位操作系統 - MATLAB將能夠訪問它。我遇到了很多正在這樣做的MATLAB用戶。如果你知道自己在做什麼,你可以建立自己的機器,或者現在你可以購買一臺尺寸爲Dell的機器。
另一個選擇(取決於您的應用程序)將考慮獲取一個小羣集,並使用Parallel Computing Toolbox和MATLAB Distributed Computing Server一起使用。
當您嘗試在Matlab中分配數組時,Matlab必須具有足夠的連續內存大小的數組,並且如果沒有足夠的連續內存可用,您將得到out of memory
錯誤,無論您擁有多少內存電腦。
根據我的經驗,解決方案不是直接處理硬件的與內存相關的屬性,而是以防止分配過大的數組(將數據切割爲塊等)的方式編寫代碼。如果您可以描述您的代碼和您嘗試解決的任務,則可能可以指導您朝這個方向發展。
你可以在這裏閱讀更多:http://www.mathworks.com/support/tech-notes/1100/1106.html
我會盡量讓這個數組很小,但這對我來說很難。不管怎樣,謝謝! – Benjamin
這只是一個例子。考慮使用單精度(Matlab的默認值是double => 2次內存分配),或者代數消除一些中間結果等。 –
- 1. 是否有可能建立一個純粹的內部NTP系統?
- 2. 是否有可能爲Android創建一個「客戶端到客戶端」系統?
- 3. 是否有一個嵌入式系統上配置系統內存
- 4. 是否有可能爲CRM 2011構建一個32位插件?
- 5. 是否可以構建大型XSLT庫?
- 6. 是否有可能在SQL Server 2005中創建一個系統UDF
- 7. 是否有可能強制TeamCity爲每個SVN提交創建一個構建?
- 8. 訪問構建系統從另一個構建系統2
- 9. 是否有可能從文件系統創建VectorDrawable(* .xml文件)
- 10. 是否有可能設置一個系統路徑爲Spring上下文
- 11. 是否有可能在Matlab中將結構轉換爲地圖?
- 12. 如何構建一個qa系統來回答是或否
- 13. 是否有可能在系統的ms-office上使用創建到另一個系統的宏?
- 14. 是否有可能創建一個選擇在MySQL系列?
- 15. BDB文件是否可以從一個系統架構移植到另一個系統架構
- 16. 是否有可能用bjam做一個out-source的構建?
- 17. 是否有可能知道圖像是否在iPhone系統緩存中?
- 18. 在java中爲xpages構建一個緩存查找系統
- 19. 我想知道是否有可能爲架構armv7的嵌入式系統構建OpenCV Java庫?
- 20. 是否有可能在循環中構建並新建一個結構?
- 21. 搜索有關構建大型企業系統的信息
- 22. 是否有可能倒帶一個python StringIO內存文件?
- 23. 是否有可能爲Google TV構建類似AirPlay的功能?
- 24. Node.js的模塊/輸出系統:是否有可能一個模塊導出爲一個功能
- 25. Git - 是否有可能創建一個存儲庫佔位符?
- 26. 是否有可能在創建巨大的位圖之前判斷是否有足夠的可用內存?
- 27. 是否有可能在一個子內有一個子?
- 28. 是否可以將Git SSHKey從一個系統轉移到另一個系統
- 29. 是否有可能在C#中爲泛型創建「此類型」?
- 30. 它是否爲MATLAB的內存不足?
感謝您的信息!我已經檢查出戴爾的頁面,該機器太強大了。我只需要大容量的存儲器,我不關心計算能力。不管怎樣,謝謝! – Benjamin
沒問題,很高興這很有幫助。戴爾的這臺機器僅僅是一個例子,表明大型機器已經可以買到 - 這完全不是戴爾或者特定機器的推薦。我很驚訝地聽到你說你對計算能力不感興趣 - 通常如果你的數據集足夠大以至於需要大量的存儲空間,那麼你也需要合理的計算能力水平來做任何事情該數據集在可容忍的時間長度內。 –