2014-02-16 47 views
0

我在嘗試填充數組時遇到了MatLab中的此錯誤。 MatLab說,賦值B(j, 1) = z(z-counter)包含一個負值或非整數值。但是,當我嘗試執行代碼後查看工作空間中的變量值時。
j =1, counter =1, z =1獲取錯誤「下標索引必須是真正的正整數或邏輯」儘管工作空間表示我的可變全部= 1

for j= 1:1:totalSizeOfMatrix 
    if(j <= totalNumberInBottom) 
     if(mod(j, lengthOfBottomRow) == 1) 
      counter= counter +1; 
     end 
     z = mod(j,lengthOfBottomRow); 
     B(j,1) = z(z-counter); 
    end 
    if(j > totalNumberInBottom && j <= totalNumberNotInTop) 
     if(mod(j, lengthOfSecondRow) == 1) 
      counter= counter +1; 
     end 
     z = mod(j,lengthOfSecondRow); 
     B(j,1) = z(z-counter); 
    end 
    if(j > totalNumberInBottom) 
     if(mod(j, lengthOfTopRow) == 1) 
      counter= counter +1; 
     end 
     z = mod(j,lengthOfTopRow); 
     B(j,1) = z(z-counter); 
    end 
end 
+1

MATALB索引從1開始。因此,z(0)無效。 –

+0

另請參見[此問題](http://stackoverflow.com/questions/20054047/subscript-indices-must-either-be-real-positive-integers-or-logicals-generic-sol)[通用方法] (http://stackoverflow.com/a/20054048/983722)來處理這個錯誤。 –

回答

1

如果z = 1counter = 1,然後z - counter爲零。

因此,z(z-counter)正試圖訪問z(0),這是一個錯誤。

相關問題