Find all subset index of an array whose sums equal or nearest to a given target
1 回表示 (過去 30 日間)
古いコメントを表示
- target = 700
- array = [200 250 340 100 500 360]
3 件のコメント
Walter Roberson
2015 年 9 月 26 日
So 200,200,200,100 would be accepted as long as no other permutation of those values was emitted?
回答 (1 件)
Andrei Bobrov
2015 年 9 月 26 日
a = dec2bin((0:bin2dec(sprintf('%d',ones(1,numel(array)))))')-'0';
k = bsxfun(@times,a,array);
d = abs(sum(k,2) - 700);
out = k(d == min(d),:);
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Operators and Elementary Operations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!