我正在运行一个创建大量大数组的脚本。一切运行正常,直到以下几行:
%dist is a sparse matrix
inds=dist~=0;
inserts=exp(-dist(inds).^2/2*sig_dist);
dist(inds)=inserts;
最后一行导致错误:???超出了程序允许的最大变量大小。
我不明白最后一行如何增加变量大小 - 请注意我只在非零开始的地方插入到矩阵 dist
中。那么这里发生了什么?
最佳答案
我不确定您为什么会看到该错误。但是,我建议您使用 Matlab 函数 spfun
将函数应用于稀疏矩阵中的非零元素。例如:
>>dist = sprand(10000,20000,0.001);
>>f = @(x) exp(-x.^2/2*sig_dist);
>>dist = spfun(f,dist)
关于Matlab - 分配到数组导致错误 : "Maximum variable size allowed by the program is exceeded",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7321958/