Info
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
Running if loop until a specific outcome
조회 수: 2 (최근 30일)
이전 댓글 표시
I have two double vectors, a and b. Both have values for each time point t. I want to run a loop where
- -for each time t,
- --if a >= 0.5 and the next value that is >=0.5 is in a, outa = outa + 1
- --if a >= 0.5 and the next value that is >=0.5 is in b, outc = outc + 1
- --if b >= 0.5 and the next value that is >=0.5 is in b, outb = outb + 1
- --if b >= 0.5 and the next value that is >=0.5 is in b, outc = outc + 1
How might I be able to do this?
댓글 수: 3
답변 (1개)
Image Analyst
2017년 11월 20일
Evidently i and k are different lengths, so that when ix goes from 2 to max(length(i),length(k)), it will be too long for the shorter of those two vectors. Before the loop put this:
length(i)
length(k)
max(length(i),length(k))
Then tell me what is is when it throws the error (look in the workspace panel).
댓글 수: 3
Image Analyst
2017년 11월 20일
OK, so at some point, since ix runs from 2 to 219533, ix will take on the value of 48681 (one longer than i is). So when it does this
if i(ix) < k(ix) && i(ix+1) < k(ix)
which means
if i(48680) < k(48680) && i(48680+1) < k(48680)
Now i(48680+1) is i(48681). And since there is no 48681st element of (the badly named) i, it will thrown an error.
이 질문은 마감되었습니다.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!