Pie*_*ter 6 matlab memory-management
我正在编写一个MATLAB程序,它将生成一个包含100万行和未知列数(最多100万)的矩阵.
我试过预先分配这个矩阵:
a=zeros(1000000,1000000)
Run Code Online (Sandbox Code Playgroud)
但是我收到了错误:
"超出了程序允许的最大变量大小."
我有一种感觉,即不预先分配这个矩阵会严重降低代码的速度.
这让我很好奇:MATLAB中的最大数组大小是多少?
更新:我将研究稀疏矩阵,因为我在这个特定问题中的目标是一个由大部分零组成的矩阵.
要找出实际的最大数组大小(仅限Windows),请使用命令user = memory.user.maxPossibleArrayBytes显示连续RAM的空闲字节数.除以数组中每个元素的字节数(双精度数为8),您就知道可以预分配的最大元素数.
请注意,正如木片所说,Matlab可能必须复制您的数组(例如,如果您将值传递给子函数).根据我的经验,75%的最大可能阵列通常可以多次使用.
| 归档时间: |
|
| 查看次数: |
15718 次 |
| 最近记录: |