Effacer les filtres
Effacer les filtres

for loop adding numbers on left side of equal sign

1 vue (au cours des 30 derniers jours)
bus14
bus14 le 3 Mai 2019
Hi, I want to make a for loop which iterates the the values of my prob function. Ideally I want to the loop to do for [89-105] to give the sequence of pk(89)=prob(89) & pk(90)=prob(90) and so on. I already have the loop working that it gives the values of prob(k) in the correct sequence. However, I am unable to have the loop adding the values of i to be 89,90,91,92 and so. It must be a simple command but I cannot find it. Hope some can help me out.
pd= makedist('normal','mu',100,'sigma',10)
demand = [0:1:200];
prob = normpdf(demand,100,10);
for k=89:1:105;
pk(i)=prob(k)
i=k+1;
end
Furthermore, the error that I get running the code regarding the line pki)=prob(k) is [Subscript indices must either be real positive integers or logicals.]
Thankyou

Réponse acceptée

KALYAN ACHARJYA
KALYAN ACHARJYA le 3 Mai 2019
Modifié(e) : KALYAN ACHARJYA le 3 Mai 2019
for k=89:1:105;
pk(k)=prob(k)
end
Yes, you can get it pk(89) to pk(105)
but what about pk(1), pk(2),...might be zero. yes?
  6 commentaires
madhan ravi
madhan ravi le 3 Mai 2019
@Kalyan: Preallocating pk is essential.
KALYAN ACHARJYA
KALYAN ACHARJYA le 3 Mai 2019
Modifié(e) : KALYAN ACHARJYA le 3 Mai 2019
Yes @madhan ravi, is the following correct way?
pk=zeros(size(prob));
Thanks

Connectez-vous pour commenter.

Plus de réponses (1)

bus14
bus14 le 3 Mai 2019
I think we misunderstand each other. What I mean is, that ideally I want to run the program and as an output obtain two 'colums'. first colum [pk(1) pk(2) pk(3) pk(4).......pk(200)]=[0 0 0 ....... 0.0035 0.00034]
easier said. I would like to see the as answer e.g. for the instance of k=100 get as output pk(100)=0.00397 instead of now only getting 0.000397
  3 commentaires
bus14
bus14 le 3 Mai 2019
Yes this is indeed what I was looking for.
Thank you a lot!
KALYAN ACHARJYA
KALYAN ACHARJYA le 3 Mai 2019
pd=makedist('normal','mu',100,'sigma',10)
demand=[0:1:200];
prob=normpdf(demand,100,10);
prob(1:80)=0;
pk=zeros(size(prob));
for k=1:1:105;
pk(k)=prob(k);
fprintf('\n when k=%d, value of p(%d)=%.5f',k,k,pk(k));
end

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by