在matlab中,下标索引必须是实正整数或具有平均函数的逻辑误差

在matlab中,下标索引必须是实正整数或具有平均函数的逻辑误差,matlab,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.6

我有一个巨大的数据数组,在每一行中我都要提取特定的列,然后平均我提取的数字。这是我的代码:

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),我不会得到错误。这对我来说真的很奇怪


谢谢你的帮助

我怀疑您定义了一个与内置函数同名的变量
mean
。您可以使用以下方法进行检查:

which mean

要解决此问题,请从内存中删除变量:
clear mean
,然后更正此变量的所有引用…

我遇到了类似的问题。在我的例子中,错误是因为使用了mean作为变量名,它也恰好是一个函数名

由于它是一个平均值,MATLAB将关键字mean视为变量名,而不是函数

我希望我的评论也能有所帮助。