MATLAB: Problem with an algorithm

algorithmMATLAB

Hey guys,
I wanted to build an algorithm which should be able to combine different options till a treshold F.
C = sort([4,1,10,6],2);
[numRows,numCols] = size(C);
F = 7;
O= 1;
So now there should be a new matrix U that should look like this:
U(1) = 1 + 1*4; — the first one standts for the value one in C
U(2) = 1 + 2*4;
U(3) = 1 + 3*4; — now the treshold of 2*F is reached and it continues with the new number of C = 6
U(4) = 1+ 1*6;
U(5) = 1+2*6;
when all options with C = 1 are calculated the algorithm should continue with the next value of C. In this case 4
U(n) = 4+ 1*1;
U(n+1) = 4+ 2*1;
And so on.
I came up with this:
for i = 1:numCols
while (O > 1) && (N(t) < 2*F)
for t = 1:numCols
N(t) = C(i) + 1 * C(i);
O = O-1;
end
end
end
Any idea how to solve this? This is driving me crazy

Best Answer

hi again
i think I have something for you. I ended up doing it completly different : compute all combinations but keep only the ones that fullfill the threshold criteria. Was much simpler than doing aerobatics with multiple conditions statements.
This is the output of my code : (code is in attachement)
N( 1) = 1+1 * 4
N( 2) = 1+2 * 4
N( 3) = 1+3 * 4
N( 4) = 1+1 * 6
N( 5) = 1+2 * 6
N( 6) = 1+1 * 10
N( 7) = 4+1 * 1
N( 8) = 4+2 * 1
N( 9) = 4+3 * 1
N( 10) = 4+4 * 1
N( 11) = 4+5 * 1
N( 12) = 4+6 * 1
N( 13) = 4+7 * 1
N( 14) = 4+8 * 1
N( 15) = 4+9 * 1
N( 16) = 4+1 * 4
N( 17) = 4+2 * 4
N( 18) = 4+1 * 6
N( 19) = 6+1 * 1
N( 20) = 6+2 * 1
N( 21) = 6+3 * 1
N( 22) = 6+4 * 1
N( 23) = 6+5 * 1
N( 24) = 6+6 * 1
N( 25) = 6+7 * 1
N( 26) = 6+1 * 4
N( 27) = 6+1 * 6
N( 28) = 10+1 * 1
N( 29) = 10+2 * 1
N( 30) = 10+3 * 1
Related Question