MATLAB Answers

how to define a vector of functions using a for cycle?

45 views (last 30 days)
Luca Losero
Luca Losero on 10 Oct 2019
Commented: Luca Losero on 16 Oct 2019
I have defined n functions fi(t,x,y),
I want to obtain the vector:
F=@(t,x,y) [f1(t,x,y); f2(t,x,y); ... fn(t,x,y)],
without writing the vector by hand but implementing a cycle like:
for i=1:n
fi=@(t,x,y) x+3*i*y+t^2
F(i)=fi
end

  3 Comments

Daniel M
Daniel M on 10 Oct 2019
Does this help? If not, you'll have to clarify a bit more of what you are specifically trying to do (and trying to avoid doing).
funcList = {@f1,@f2,@fn};
for f = 1:length(funcList)
output{f} = funcList{f}(t,x,y);
end
Shubham Gupta
Shubham Gupta on 10 Oct 2019
Maybe this will help?
F = @(t,x,y)[];
for i=1:n
fi=@(t,x,y) x+3*i*y+t^2
F=@(t,x,y)[F(t,x,y);fi(t,x,y)];
end

Sign in to comment.

Accepted Answer

Shivam Prasad
Shivam Prasad on 16 Oct 2019
Edited: Shivam Prasad on 16 Oct 2019
Hi Luca,
Check if this works for you:
syms t x y
n=5; % define a n
F=matlabFunction(subs(x+3*i*y+t^2,i,1:n))

  0 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!