Matlab内存不足错误在一维和二维数组中表现不同

tro*_*oll 2 matlab

今天我需要在Matlab中分配一个大小为100000的向量.我尝试简单地使用:

a=ones(100000);
Run Code Online (Sandbox Code Playgroud)

我的Matlab愤怒地回答:

Out of memory. Type HELP MEMORY for your options.
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我在具有8 GB RAM的64位机器上运行了Matlab 64位.我在SO或其他地方尝试了很多"在Matlab中解决内存错误"的配方,但到目前为止还没有运气.

现在我更困惑的是:

a=ones(10000,10000);
Run Code Online (Sandbox Code Playgroud)

在我的机器上运行没有问题.

这是否意味着Matlab有一些机制来限制一维空间中矢量的元素数量?

Ala*_*lan 5

今天我需要在Matlab中分配一个大小为100000的向量.

现在,如评论中所述,您尝试的方法(a=ones(100000);)创建了一个100000x100000矩阵,这不是您想要的.

我建议你试试:

a = ones(1, 100000);
Run Code Online (Sandbox Code Playgroud)

因为这会创建一个向量而不是一个矩阵.