我有一个关于Matlab溢出内存的问题。我正在使用Ludy代码进行信道编码。编码符号y
创建如下
y=x*G
其中G
是矩阵 n -by- m 而x
是输入符号,其大小为 1 - 逐名词的
我的问题是我想要处理的输入符号数量很大。因此,我必须分配一个G矩阵,它的大小非常大。但是,它会发生溢出内存问题。我正在使用Matlab 2012a来做到这一点。你能告诉我一些方法来解决我的问题
例如,我的G
矩阵 40000 -by- 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
答案 0 :(得分:1)
尝试使用sparse
矩阵:
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