Nonscalar arrays of function handles are not allowed; use cell arrays instead.
6 views (last 30 days)
Show older comments
Karthik Agnihotri
on 28 Apr 2020
Commented: Karthik Agnihotri
on 28 Apr 2020
a_vec=[0.020 0.025 0.030];
for i=1:length(a_vec)
dP_dt_1(i)=@(P) (a_vec(i).*P)-(b.*P.^2);
[t_ode45_vec_1,y_ode45_vec_1] = ode45(@(P,t) dP_dt_1(t),[t_0 t_max],P_0);
figure(5)
plot(t_ode45_vec_1,y_ode45_vec_1)
hold on
end
Hi everyone, when I try to run this piece of code, I get an error :
Nonscalar arrays of function handles are not allowed; use cell arrays instead.
How can I resolve this error?
Thanks in advance!
0 Comments
Accepted Answer
James Tursa
on 28 Apr 2020
You don't need to create an array of function handles. You just need to construct one function handle to use for that iteration. So just
dP_dt_1 = @(P) (a_vec(i).*P)-(b.*P.^2);
More Answers (0)
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!