Generate a large power set in batches?
1 回表示 (過去 30 日間)
古いコメントを表示
Say I want to generate the power set of a number and store as logical combinations using this formula for example:
idx = dec2bin(0:2^n-1,n)=='1';
But the n value I want to use is big enough that the resulting idx variable becomes too large to store in memory or work with. Is there any way that I can generate the power set batch-wise in a loop so I only have to store parts of it at a time but in the end I will have worked my way though all of it?
So for example, is there any way I can generate the first 100 values of the set and then start regenerating at 101 and go to 200 etc?
0 件のコメント
採用された回答
Walter Roberson
2016 年 2 月 18 日
編集済み: Walter Roberson
2016 年 2 月 18 日
n = 14; %for example
batch_size = 100;
maxidx = 2^n - 1;
for k = 0 : ceil(maxidx/batch_size)
high = min(maxidx, (k+1)*batch_size - 1);
idx = dec2bin(k * batch_size : high, n) == '1';
...
end
その他の回答 (0 件)
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!