Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中的内存溢出处理_Matlab_Memory Management_Encoding - Fatal编程技术网

matlab中的内存溢出处理

matlab中的内存溢出处理,matlab,memory-management,encoding,Matlab,Memory Management,Encoding,我有一个关于Matlab内存溢出的问题。我正在使用Ludy代码进行信道编码。编码符号y创建如下 y=x*G 其中,G是矩阵n×m,x是大小为1×n的输入符号 我的问题是,我想处理的输入符号数量很大。因此,我必须分配一个G矩阵,它的大小非常大。但是,它会出现内存溢出问题。我正在使用Matlab2012a来做这件事。你能给我建议一些解决我问题的方法吗 例如,我的G矩阵是40000乘60000 这是我的密码 function G = gen_matrix(n,m) G = zeros(n,m

我有一个关于Matlab内存溢出的问题。我正在使用Ludy代码进行信道编码。编码符号
y
创建如下

y=x*G
其中,
G
是矩阵n×m,
x
是大小为1×n的输入符号

我的问题是,我想处理的输入符号数量很大。因此,我必须分配一个G矩阵,它的大小非常大。但是,它会出现内存溢出问题。我正在使用Matlab2012a来做这件事。你能给我建议一些解决我问题的方法吗

例如,我的
G
矩阵是40000乘60000 这是我的密码

function G = gen_matrix(n,m)
    G = zeros(n,m);
    for i=1:m
        d=randi(n/2);
        column = [ones(1,d) zeros(1,n-d)];
        column = column(randperm(n));
        G(:,i) = column';
    end
end
这是我的记忆信息

[userview systemview] = memory;

systemview.VirtualAddressSpace

ans = 

    Available: 1.4074e+14
        Total: 1.4074e+14
尝试使用矩阵:


你读了吗:还有?另外,你的矩阵是否适合(即包含大量的零)好吧,否则就做(参见@Dan的答案)或者购买更多的RAM;)@如果你不读这些文章,AnderBiguri more RAM可能不会有帮助。默认情况下,Matlab(32位)只允许您访问2GB的RAM,无论您有多少。@user8264您使用的是什么操作系统,是32位还是64位?您的Matlab是32位还是64位?升级可能会有帮助…@Dan。我知道,内存问题比“买更多内存”要复杂得多。但除非OP知道向量将是他/她的记忆上限,否则他需要找到另一种方法。
function G = gen_matrix(n,m)
    G = sparse(zeros(n,m));
    for i=1:m
        d=randi(n/2);
        column = [ones(1,d) sparse(zeros(1,n-d))];
        column = column(randperm(n));
        G(:,i) = column';
    end
end