我有一个巨大的数据阵列,我想在每一行中提取特定列,然后平均我提取的数字.这是我的代码:
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
Run Code Online (Sandbox Code Playgroud)
我在第一次迭代时遇到错误.提取的数组是
[NaN NaN NaN NaN 15.64]
Run Code Online (Sandbox Code Playgroud)
当我输入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)))
Run Code Online (Sandbox Code Playgroud)
从命令行调用此方法会产生相同的错误.但是,如果我尝试使用协方差函数(cov),我不会得到错误.这对我来说真的很奇怪!
谢谢你的帮助!
matlab ×1