【发布时间】:2015-11-20 18:38:24
【问题描述】:
我正在运行以下代码。它适用于较小的 NumberOfVariables,但由于内存不足,不适用于 8 或更大的任何变量。我真的只需要第一个不包含零的 AllAnswers,但如果可能的话,我想要所有的 AllAnswers。
NumberOfVariables = 9;
k=NumberOfVariables^2-NumberOfVariables+1;
integers = 0:k-1;
numbers = 1:k-1;
tic
s = combnk(integers,NumberOfVariables);
AllAnswers = [];
for i = 1:size(s,1)
G=combnk(s(i,:),2);
G = [(G(:,1)'-G(:,2)') (G(:,2)'-G(:,1)')];
G = sort(mod(G,k));
if (isequal(G,numbers))
AllAnswers = [AllAnswers;s(i,:)];
end
end
toc
【问题讨论】:
-
从你的代码来看,我不明白你在实现什么。可能创建
s已经填满了内存,所以结果没有剩余空间,也许在s中按需创建行是一种选择。
标签: matlab