while loop only diving last result

1 回表示 (過去 30 日間)
Matlabbey
Matlabbey 2012 年 8 月 14 日
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!!
  1 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2012 年 8 月 14 日
post your code

サインインしてコメントする。

回答 (2 件)

Oleg Komarov
Oleg Komarov 2012 年 8 月 14 日
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 件のコメント
Walter Roberson
Walter Roberson 2012 年 8 月 14 日
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 2012 年 8 月 14 日
Thanks!! That did the trick!

サインインしてコメントする。


Azzi Abdelmalek
Azzi Abdelmalek 2012 年 8 月 14 日
v=[];
while condition
Xstar=
v=[v Xstar]
end

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by