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

 采纳的回答

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 个评论

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
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.
Thank you so much for help
@Muhammad Please Accept-click the answer to indicate that it worked.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by