How to impose a condition creating a matrix.

1 回表示 (過去 30 日間)
Iván López
Iván López 2013 年 4 月 19 日
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 日
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 件)

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by