for loop adding numbers on left side of equal sign

조회 수: 2 (최근 30일)
bus14
bus14 2019년 5월 3일
댓글: KALYAN ACHARJYA 2019년 5월 3일
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

채택된 답변

KALYAN ACHARJYA
KALYAN ACHARJYA 2019년 5월 3일
편집: KALYAN ACHARJYA 2019년 5월 3일
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
madhan ravi
madhan ravi 2019년 5월 3일
@Kalyan: Preallocating pk is essential.
KALYAN ACHARJYA
KALYAN ACHARJYA 2019년 5월 3일
편집: KALYAN ACHARJYA 2019년 5월 3일
Yes @madhan ravi, is the following correct way?
pk=zeros(size(prob));
Thanks

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

bus14
bus14 2019년 5월 3일
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
bus14
bus14 2019년 5월 3일
Yes this is indeed what I was looking for.
Thank you a lot!
KALYAN ACHARJYA
KALYAN ACHARJYA 2019년 5월 3일
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

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by