Array indices must be positive integers or logical values.

3 Ansichten (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)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by