2014-03-12 45 views
0

我想調試一個簡單的樣本統計。錯誤信息:這個錯誤信息是什麼意思?下標索引必須是真正的正整數或邏輯

標指標必須是真正的正整數或邏輯值

我最近收到此錯誤一些功課。這是什麼意思?

clc 
format short g 
s=[0.90 1.32 1.96 1.85 2.29 1.42 1.35 1.47 1.74 1.82... 
1.30 1.47 1.92 1.65 2.06 1.55 1.95 1.35 1.78 2.14... 
1.63 1.66 1.05 1.71 1.27]; 
mean=mean(s) 
median=median(s) 
mode=mode(s) 
max=max(s); min=min(s); 
range=max-min ,std=std(s) ,var=var(s) 
cvcd=std/mean*100 

回答

1

由於在編寫時覆蓋內置變量:mean = mean(s),所以出現該錯誤。所有其他功能也一樣。

如果你這樣做,第一次調用腳本時,它會計算出平均值。但是,第二次,MATLAB會將mean(s)解釋爲變量mean的第s值。獲得標量的第0.9個元素顯然是不可能的,因此你會得到一個錯誤信息。

什麼你應該所做的是:

mean_val = mean(s);  
median_val = median(s); 

也就是說,給不能與內置函數混淆你的變量的名稱。

只是要清楚,當你嘗試這個,仍然會得到相同的錯誤。確保工作空間爲clear,或者至少清除名稱與內置函數名稱衝突的變量。

1

你的問題是,變量名覆蓋函數中的構建。第一次運行mean=mean(s)這沒問題,但第二次mean是雙重結果,它使用雙精度索引。

不要使用變量名,它們與構建函數相同!

相關問題