Problem with an algorithm
Mostra commenti meno recenti
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
4 Commenti
Mathieu NOE
il 7 Ott 2020
hello
i don't understand your first iterations : where does the 4.3 value come from ?
U(1) = 1 + 1*4,3; -- the first one standts for the value one in C
U(2) = 1 + 2*4,3;
U(3) = 1 + 3*4,3; -- now the treshold of 2*F is reached and it continues with the new number of C = 6
you should try explain better how U depends of C (twice) and where indexes are used
Antonio Spiere
il 7 Ott 2020
Modificato: Antonio Spiere
il 7 Ott 2020
Mathieu NOE
il 7 Ott 2020
ok , it's a bit better now
still I need to understand your logic... so can you please confirm / comment my assumptions
let's put in a more general form : U(n) = C(i) + k*C(j)
- n is the current indice of the main loop (while condition) : goes from 1 to end of validity of while condition
- k may differ from n , depends if threshold is reached or not
- i and j indexes are also independant - a contrario from what your code shows. so the first C term is not the same as the second one.
Question : why in the first iteration it starts with C = 4 in U(1) = 1 + 1*4 and not with the first value of C ( C = 1) , it does not follows the same logic as after, once you reach : 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;
In this case the "first" C term is updated (1 => 4) , but the second C term restarts at 1 .
so I don't understand the difference in the logic... but you have probably good resons for it ?
Antonio Spiere
il 7 Ott 2020
Modificato: Antonio Spiere
il 7 Ott 2020
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Matrix Indexing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!