save for loop variable in workspace

4 views (last 30 days)
Sarah Philips
Sarah Philips on 1 Jul 2021
Commented: Stephen23 on 2 Jul 2021
Hello.
I am new to coding and have a question.
I'm running a script which gives produces many variables in the output inclduing a 1x1 structure with 6 fields, I want to save one of the fields: "PM.res" each time. I'm using loop numbers:
loop = 1
at the beginning and
loop = loop + 1
in the for loop so I will incorporate this when saving but I want to know how. I want to save each one as a variable in the workspace, so it can be used within the rest of the for loop.
Thank you.

Answers (1)

Stephen23
Stephen23 on 1 Jul 2021
Edited: Stephen23 on 1 Jul 2021
Given that you are apparently incrementing your own loop counter then presumably you have a WHILE loop.
In that case, try this:
C = {};
loop = 1;
while ..
.. your code here
C{end+1} = PM.res;
loop = loop+1;
end
If the total number of iterations is known in advance then a FOR loop would be simpler and more efficient.
  2 Comments
Sarah Philips
Sarah Philips on 1 Jul 2021
Edited: Sarah Philips on 1 Jul 2021
Thank you for your help. If it is simipler, I do know that there will be 720 iterations what would you suggest?
I haven't used a while loop, but I included the counter to keep track of which part of the data the for loop is at.
Stephen23
Stephen23 on 2 Jul 2021
"...but I included the counter to keep track of which part of the data the for loop is at."
FOR loops already have a "counter", in most cases there is no need to duplicate that information with your own separately-defined "counter" as well. Therefore you can write simpler and more efficient code:
N = 720;
C = cell(1,N);
for k = 1:N
..
C{k} = PM.res;
end

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!