Array indices must be positive integers or logical values.

1 Ansicht (letzte 30 Tage)
Hello everyone! I am having a hard time making the following function work, as I keep getting the message "Array indices must be positive integers or logical values". What could be the problem??
function[p]=map_funct(alpha, beta, lambda, gamma, Num, gf, gc, w, F, r, D, N, p0)
alpha=2.1;
beta=15;
D=1;
F=3;
r=0.01;
Num=100;
gf=0.5;
gc=0.3;
lambda=1;
gamma=0.35;
w=0.5;
N=1200;
p0=2.95;
p=zeros(N,1);
p(1)=p0;
for k=1:N-2
p(k+1)=p(k)+gamma*Num*((w*gf*(F-p(k))+(1-w)*gc*(p(k)-F))./(1+exp(-lambda*(alpha*((D/F)-r)+beta*((p(k-1)-p(k-2))./p(k-1))))));
%
% line([p(k),p(k)],[p(k),p(k+1)]);
% line([p(k),p(k+1)],[p(k+1),p(k+1)]);
%
%
end
  2 Kommentare
KSSV
KSSV am 9 Apr. 2020
You have used p(k-1), p(k-2) in your formula.....when your indices start with 2...p(k-2) ,will be zero and you will get error.
Carolina Biliotti
Carolina Biliotti am 9 Apr. 2020
yep! that was it!!! thank you so much!

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

madhan ravi
madhan ravi am 9 Apr. 2020
1-1=0, 1-2=-1, MATLAB likes only positive numbers greater than zero :)

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by