Matlab的nanmean()函数不超过1
其他方面的工作从mathworks helpnanmean()
的拿这个例子:Matlab的nanmean()函数不超过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)
??? Error using ==> nanmean
Too many input arguments.
为什么会显示错误,即使文件说,平均可在任何尺寸dim
采取X
as y = nanmean(X,dim)
?谢谢。
我刚好运行你的代码,我没有得到任何错误。在particlar这里是我跑:
>> 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
。尝试一个which nanmean
,看看它是否指向统计工具箱。
这里的原因是:
如果X含有沿一些维度所有NaN值的向量,一旦NaN值被移除所述载体是空的,所以剩余的元素的总和为0。由于平均涉及0除法,其值为NaN。输出NaN不是NaN值的平均值。
我在帮助页面上阅读了这条语句。然而,这并不是原因,因为即使你没有像'X = magic(3)'这样的'NaN'并且找到它的'nanmean',你仍然会得到上面的错误:'>> y = nanmean(X ,2) ???错误使用==> nanmean 输入参数太多.' – Pupil 2012-07-19 04:00:08
事实上,这不是事实。我只是尝试了nanmean(魔法(3),2),它工作。你的MATLAB版本是什么? – TJ1 2012-07-19 04:07:37
'>> nanmean(magic(3),2) ???错误使用==> nanmean 输入参数太多。' – Pupil 2012-07-19 04:09:08
它指向一个不同的自定义工具箱:'C:\ Program Files \ MATLAB \ R2010b \ toolbox \ mgstat \ nanmean.m'。如何改变? – Pupil 2012-07-19 04:13:49
把'C:\ Program Files \ MATLAB \ R2010b \ toolbox \ stats \ stats'放在你的路径中比...... \ mgsstat更高,实际上只是将... \ msgstat放在你的路径之外。它似乎不是一个“常规”的matlab工具箱,至少它不在我的发行版中。使用'editpath'来改变matlab的路径。 – mwengler 2012-07-19 04:17:01
我刚刚复制'nanmean.m'并复制到我当前的文件夹中。由于管理权限,我没有权限对路径进行更改:(。感谢您的回答btw。 – Pupil 2012-07-19 04:23:09