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

En savoir plus sur Programming dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by