Array indices must be positive integers or logical values.

10 vues (au cours des 30 derniers jours)
Carolina Biliotti
Carolina Biliotti le 9 Avr 2020
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 commentaires
KSSV
KSSV le 9 Avr 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 le 9 Avr 2020
yep! that was it!!! thank you so much!

Connectez-vous pour commenter.

Réponse acceptée

madhan ravi
madhan ravi le 9 Avr 2020
1-1=0, 1-2=-1, MATLAB likes only positive numbers greater than zero :)
  1 commentaire
Carolina Biliotti
Carolina Biliotti le 9 Avr 2020
Got it, i corrected it and now is running smoothly :) thanks alot!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by