在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视为变量名,而不是函数
我希望我的评论也能有所帮助。