How to Store Output from Function Within Nested for Loop

3 views (last 30 days)
I have the following code:
Fes=10:1:11;
Fe0=12:1:13;
for y=1:numel(Fes);
for z=1:numel(Fe0);
puppies(Fes(y),Fe0(z))
end
end
Puppies is a function that produces two vectors for each combination of Fes and Fe0. I would like to store the result of puppies in a table, contained within my workspace, that shows each result, labelled with the particular Fes and Fe0 combination that produced the result (with each result being the two vectors generated from an individual Fes and Fe0 combination).
How can I do this?

Answers (1)

Rik
Rik on 8 May 2020
The same way you capture any output from a function. You might need an intermediate step to put your vectors in a cell first.
Fes=10:1:11;
Fe0=12:1:13;
for y=1:numel(Fes);
for z=1:numel(Fe0);
[A,B]=puppies(Fes(y),Fe0(z));
%now you can store A, B, Fes(y), and Fe0(z) in a table
end
end
Alternatively, you could store Fes and fe0 in a table and then use rowfun.
  4 Comments
Jonathan Pinko
Jonathan Pinko on 10 May 2020
Edited: Jonathan Pinko on 10 May 2020
Hi Rik,
Thanks again. I like your idea of putting my results into a 3D array rather than a table, and I think that putting my data into two 3D arrays would be best. In this scenario, one 3D array would be (Fes,Fe0,A), and the other would be (Fes,Fe0,B), with A and B being the two different outputs from my code.
I apologize for being so new at this, and bothering you these basic questions, but how would I go about creating these 3D arrays?
Rik
Rik on 11 May 2020
Fes=10:1:11;
Fe0=12:1:13;
for y=1:numel(Fes)
for z=1:numel(Fe0)
if y==1 && z==1
[a,b]=puppies(Fes(y),Fe0(z));
A=zeros(numel(Fes),numel(Fe0),numel(a));
A(1,1,:)=a;
B=zeros(numel(Fes),numel(Fe0),numel(b));
B(1,1,:)=b;
else
[A(y,z,:),B(y,z,:)]=puppies(Fes(y),Fe0(z));
end
end
end
function [a,b]=puppies(y,z)
a=rand(100,1);
b=rand(5,1);
end

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!