How to Store Output from Function Within Nested for Loop

3 次查看(过去 30 天)
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?

回答(1 个)

Rik
Rik 2020-5-8
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 个评论
Jonathan Pinko
Jonathan Pinko 2020-5-10
编辑:Jonathan Pinko 2020-5-10
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 2020-5-11
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by