3

mathworks 的帮助中举这个例子nanmean()

 X = magic(3);
X([1 6:9]) = repmat(NaN,1,5)

X =

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

>> y = nanmean(X,2)
??? Error using ==> nanmean
Too many input arguments.

为什么即使文档说平均值可以在as的任何维度dim上取值,它也会显示错误?谢谢。Xy = nanmean(X,dim)

4

2 回答 2

1

原因如下:

如果 X 包含沿某个维度的所有 NaN 值的向量,则移除 NaN 值后该向量为空,因此剩余元素的总和为 0。由于均值涉及除以 0,因此其值为 NaN。输出 NaN 不是 NaN 值的平均值。

看: http: //www.mathworks.com/help/toolbox/stats/nanmean.html

于 2012-07-19T03:56:10.477 回答
1

我完全运行您拥有的代码,我没有收到任何错误。特别是这里是我跑的:

>> X = magic(3);
X([1 6:9]) = repmat(NaN,1,5)

X =

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

>> y = nanmean(X,2)

y =

     1
     4
     4


>> which nanmean
C:\Program Files\MATLAB\R2010b\toolbox\stats\stats\nanmean.m

我唯一能想到的就是你nanmean.m的路径上有不同的版本。尝试 awhich nanmean并查看它是否指向统计工具箱。

于 2012-07-19T04:10:49.010 回答