How to make variables in a while loop be an array

Could anybody help me with this please? I am trying to work out a optimisation problem. I am using a while loop. I am able to obtain results in an array e.g. result(n).however, I am not able to make variable "n" as an array,hence, the value that I can access is always the last n value appeared. I would like to know how to make the variables into an array form that I can access the optimal result,aslo the corresponding variable "n" value.

3 Kommentare

The question is vague. Can you provide a simple example?
zhe li
zhe li am 2 Nov. 2011
Thank you very much for your response Mr Jiang. However, I may have not explained my problem properly. As the "n" shown should be the variables,hence please have a look the loop written and hoping make it more clear,
idx = 0;
while ....
result(n) = ....
n = n + 1; %!
all_n(idx) = n; %! ???????????????
end
Which as the "result" will be in an array, I can use "max" function to obtain the optimal result,however, I can not obtain a corresponding "n" value,for instance, if the results look at [result(n)]= 1 4 6 8 3, and n is always showning as n=1, n= 2,n=3,n=4,n=5. however,the optimal result appeared as the fourth term,which the corresponding n value should be n=4. I hope I have explained my problem clearly. please help me with this problem. Many thanks.
zhe li
zhe li am 2 Nov. 2011
Sorry, the initial value should be n=0 before the while loop.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 2 Nov. 2011

0 Stimmen

idx = 0;
while ....
n = ....
result(n) = ....
idx = idx + 1; %!
all_n(idx) = n; %!
end
Then later you can (for example)
for K = 1 : idx
this_n = all_n(idx);
disp(result(this_n))
end

4 Kommentare

zhe li
zhe li am 2 Nov. 2011
Thank you very much for your response Mr Roberson. However, I may have not explained my problem properly. As the "n" shown should be the variables,hence please let me borrow your loop written and hoping make it more clear,
idx = 0;
while ....
result(n) = ....
n = n + 1; %!
all_n(idx) = n; %! ???????????????
end
Which as the "result" will be in an array, I can use "max" function to obtain the optimal result,however, I can not obtain a corresponding "n" value,for instance, if the results look at [result(n)]= 1 4 6 8 3, and n is always showning as n=1, n= 2,n=3,n=4,n=5. however,the optimal result appeared as the fourth term,which the corresponding n value should be n=4. I hope I have explained my problem clearly. please help me with this problem. Many thanks.
zhe li
zhe li am 2 Nov. 2011
Sorry, the initial value should be n=0 before the while loop.
[maxvalue, maxidx] = max(result);
Then the index of the maximum value is maxidx
This does not require that the n be recorded.
zhe li
zhe li am 2 Nov. 2011
Thanks a million Mr Roberson. I think I got the answer. I really appreciate your help.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by