Azzera filtri
Azzera filtri

while loop only diving last result

2 visualizzazioni (ultimi 30 giorni)
Matlabbey
Matlabbey il 14 Ago 2012
Hi,
I have some code within a while loop. Let's say the loop runs 10 times and I want to find Xstar for each of those 10 times. The code will do this, but I want to create a vector to hold each of these 10 values so I don't have to read through and find them. After the code runs,the value stored onto Xstar is the value for the 10th iteration. I want to keep it that way, but also add a new vector that holds ALL of the Xstar values.
Thank you!!

Risposte (2)

Oleg Komarov
Oleg Komarov il 14 Ago 2012
count = 0; % initialize counter
out = zeros(100,1); % preallocate (not always possible with while)
while count < 100
count = count + 1; % increment counter
out(count) = rand; % allocate result into preassigned space in out
end
  4 Commenti
Walter Roberson
Walter Roberson il 14 Ago 2012
Xstar = {}
while condition
thousands of lines of code
Xstar{end+1} = equation;
end
Note: if you can make reasonable guesses about the number of iterations, it is best to pre-allocate the cell array and use a counter instead of "end+1".
guess_length = 100;
Xstar = cell(guess_length,1);
count = 0;
while condition
thousands of lines of code
count = count + 1;
Xstar{count} = equation;
end
if count < guess_length %trim off unused portions
Xstar(counts+1:end) = [];
end
Matlabbey
Matlabbey il 14 Ago 2012
Thanks!! That did the trick!

Accedi per commentare.


Azzi Abdelmalek
Azzi Abdelmalek il 14 Ago 2012
v=[];
while condition
Xstar=
v=[v Xstar]
end

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by