How to circumvent this error: Subscript indices must either be real positive integers or logicals.

조회 수: 1 (최근 30일)
Assume I have such a vector data=[2 4 5 6 8 3 5 6 7 8 9 …]
I want to set this condition (in addition to other conditions combined with an or )for a function
If data(i)== mod(sum(data((i-12):(i-1))),28)
Obviously I will get for numbers, which indexes are smaller then 13 this error below, but I cannot ignore this numbers since they will have to undergo another condition.
Subscript indices must either be real positive integers or logicals.
Is there a way to circumvent this error? Thank you!

채택된 답변

Jan
Jan 2016년 12월 20일
When i is smaller than 13, e.g. 12, the expression
data((i-12):(i-1))
becomes:
data(0:11)
but 0 is an invalid index. So either use
data(max(1, i-12):(i-1))
or decide, what should happen instead. The currently provided information does not allow to guess a replacement, which satisfies your needs.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by