看妳用highlow 函數的調用方式,這四列應該是
開市價 最高價 最低價 收市價
而r是用size獲得的數據的行數
之所以報錯就是bggf(r-100:r,2)取下標的時候錯了
r是數據的行數,肯定是個正整數沒錯,錯就錯在r-100
妳文件裏面的數據如果不足100行,那麽r-100就會出現負數
數據正好是100行,那麽r-100就會等於0
在matlab裏面,下標是從1開始的正整數,所以發生以上情況就會錯
如果妳的數據是剛剛好100行的,那麽完全不用這麽麻煩,直接用:代替就可以了
highlow(bggf(:,2),bggf(:,3),bggf(:,4),bggf(:,1),'r')
但是這樣寫無論是數據有多少行,圖都會照畫,不足100行,超過100行照單全收
如果妳的數據有超過100行,妳只想取最後的100行,妳應該減99而不是100
highlow(bggf(r-99:r,2),bggf(r-99:r,3),bggf(r-99:r,4),bggf(r-9:r,1),'r')
但是當數據不足行時,這樣寫會同樣報錯