I want to create a matrix with all the possible combinations of 10 numbers between 0 and 100, with intervals of 5, that its sum be equal to 100. I mean something like this:
(0 0 0 0 0 0 0 0 0 10 90; 10 10 10 10 10 10 10 10 20 0;...)
I use "allcomb.m" to create something like all the possible numbers that are between 0 and 100, with intervals of 5. However, this matrix is so big, and that implies that Matlab doesn't create it. I was thinking that, if I have that matrix, I could reduce it using a condition but this is impossible because I never get the matrix. So, the question is how I can modify the allcomb's code with the condition in the same code or maybe, and better, another way to create the matrix that I purpose.
Thanks.

 採用された回答

Iman Ansari
Iman Ansari 2013 年 4 月 19 日
編集済み: Iman Ansari 2013 年 4 月 19 日

1 投票

Hi. With 0:5:100 got out of memory error:
n=0:10:100;
A=n';
for i=1:9
x=repmat(n,[size(A,1) 1]);
A=repmat(A,[numel(n) 1]);
x=x(:);
A=[A x];
A=A(sum(A,2)<=100,:);
end
A=A(sum(A,2)==100,:);

1 件のコメント

Iván López
Iván López 2013 年 4 月 19 日
編集済み: Iván López 2013 年 4 月 19 日
Thank you, Iman Ansari. Fortunately I can use a powerfull hardware where I could use 0:5:100. Thanks for your time.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Introduction to Installation and Licensing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by