Conversion to cell from double is not possible.

I am trying to solve delay logistic equation with multiple delay terms but for finding delayed states i am getting error and my error is
"Conversion to cell from double is not possible."
g = @(t, y, Z, par) par(1) * y * (1 - sum(par(2:end) .* Z));
tau = [1, 1.5,2,2.5,3]; % Array of different delays
par = [1.5, 0.1,0.2,0.3,0.4,0.5];
this is my equation
and I am getting error here in this part
%% Calculate delayed states for multiple delays
x_d = cell(length(tau), 1);
for k = 1:length(tau)
x_d(k) = deval(sol, t_t - tau(k));
end

 Réponse acceptée

You need to use curly brackets, {}
%% Calculate delayed states for multiple delays
x_d = cell(length(tau), 1);
for k = 1:length(tau)
% v v
x_d{k} = deval(sol, t_t - tau(k));
end

5 commentaires

Thank you its working
Now i am getting error in this next part and the error is "Operator '.*' is not supported for operands of type 'cell'."
x_dn = cell(size(x_d));
for k = 1:length(x_d)
x_dn(k) = x_d(k) + eps * randn(size(x_d(k))) .* x_d(k);
end
Dyuman Joshi
Dyuman Joshi le 28 Nov 2023
Modifié(e) : Dyuman Joshi le 28 Nov 2023
Again, use curly brackets for cell arrays.
x_dn = cell(size(x_d));
for k = 1:length(x_d)
% v v v v v v v v
x_dn{k} = x_d{k} + eps * randn(size(x_d{k})) .* x_d{k};
end
Also, you can combine the for loops for x_d and x_dn.
Muhammad
Muhammad le 28 Nov 2023
Thank you so much for help
Matt J
Matt J le 28 Nov 2023
Modifié(e) : Matt J le 28 Nov 2023
@Muhammad Please Accept-click the answer to indicate that it worked.
Thanks @Matt J.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by