我有一個巨大的數據數組,其中在每一行我想提取特定列,然後平均我提取的數字。這是我的代碼:下標索引必須是真正的正整數或邏輯與matlab中的均值函數的錯誤
for i=1:1000
temp=data(i,:);
index_data=temp([1,10,11,12,19]); %columns I want to extract
data_final(i,1)=mean(index_data(~isnan(index_data)));
end
我在第一次迭代時出現錯誤。所提取的陣列是
[NaN NaN NaN NaN 15.64]
而我所得到的,當我鍵入index_data(〜isnan(index_data))是15.64,我所期待的。不過,我得到的
??? Subscript indices must either be real positive integers or logicals.
Error in ==> mean(index_data(~isnan(index_data)))
從命令行調用這個錯誤產生同樣的錯誤。但是,如果我嘗試使用協方差函數(cov),我不會得到錯誤。這對我來說似乎很奇怪!
感謝您的幫助!
另請參閱[這個問題](http://stackoverflow.com/questions/20054047/subscript-indices-must-either-be-real-positive-integers-or-logicals -generic-sol)[通用解決此問題](http://stackoverflow.com/a/20054048/983722)。 –