Why i get the out of bound error in this code?

조회 수: 1 (최근 30일)
IBM watson
IBM watson 2018년 10월 21일
댓글: IBM watson 2018년 10월 21일
myset=[1 2 3 4 6];
capacity=6;
passedall=[]
passed=[]
for q = 1:5
    q=q+1
    capacity=6;
    passedall = [passedall passed]; 
    myset= setdiff(myset,passedall);
    for b= 1:5
      if (myset(b) < capacity);
        capacity= capacity - myset(b)
        passed(b) = myset(b)
      end
    end
  end

i get this error:

error: myset(4): out of bound 3
error: called from
    deneme at line 13 column 5
  댓글 수: 2
madhan ravi
madhan ravi 2018년 10월 21일
provide all the datas
madhan ravi
madhan ravi 2018년 10월 21일
passedall = [passedall passed]
doesn't have any values ?

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

채택된 답변

Guillaume
Guillaume 2018년 10월 21일
Why i get the out of bound error in this code
Because by the time b equals 4, you've removed enough elements from myset that there are only 3 left and myset(b) is no longer valid. Have you tried debugging your program?
I have no idea what you're trying to do with your code since it's not commented at all. As it is, it doesn't make any sense and probably your loops are not needed. Without an explanation of what you're trying to achieve we can't tell you how to fix it.
Note that
for q = 1:5
q=q+1
has exactly the same effect as
for q=2:6
  댓글 수: 1
IBM watson
IBM watson 2018년 10월 21일
"Because by the time b equals 4, you've removed enough elements from myset that there are only 3 left and myset(b) is no longer valid."
This!! Thank you.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by