Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function Matlab';s nanmean()函数不能处理除1以外的维度_Function_Matlab - Fatal编程技术网

Function Matlab';s nanmean()函数不能处理除1以外的维度

Function Matlab';s nanmean()函数不能处理除1以外的维度,function,matlab,Function,Matlab,以nanmean()的示例为例: 为什么即使文档说可以在X的任何维度dim中取平均值,也会显示错误,因为y=nanmean(X,dim)?谢谢。原因如下: 如果X包含沿某个维度的所有NaN值的向量,则一旦移除NaN值,该向量即为空,因此剩余元素之和为0。由于平均值除以0,因此其值为NaN。输出NaN不是NaN值的平均值 看看: 我完全按照您的代码运行,没有出现错误。特别是我所说的: >> X = magic(3); X([1 6:9]) = repmat(NaN,1,5) X =

nanmean()
的示例为例:

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

原因如下:

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

看看:
我完全按照您的代码运行,没有出现错误。特别是我所说的:

>> 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
。试试
,意思是
,看看它是否指向统计工具箱。

我在帮助页面上读到了这句话。然而,这并不是原因,因为即使你取一个没有NaN的矩阵,比如X=magic(3)
,然后找到它的NaN均值,你仍然会得到上面的错误:
>y=NaN均值(X,2)???使用==>NaN时出错意味着输入参数太多。
实际上不是这样。我刚试过nanmean(魔法(3),2),它成功了。你的MATLAB版本是什么?你的MATLAB版本是什么?我试过R2009b,没问题。你是否出于某种原因自己修改了nanmean函数?谢谢你的回答TJ1。我选择mwengler作为答案,因为他认识到路径问题。它指向一个不同的自定义工具箱:
C:\ProgramFiles\MATLAB\R2010b\toolbox\mgstat\nanmean.m
。如何更改?将
C:\Program Files\MATLAB\R2010b\toolbox\stats\stats
放在比…\mgsstat更高的路径中,实际上只需将…\msgstat从路径中移除即可。它似乎不是一个“常规”的matlab工具箱,至少它不在我的发行版中。使用
editpath
更改matlab的路径。我刚刚复制了
nanmean.m
并复制到我的当前文件夹中。由于管理权限,我没有权限更改路径:(。谢谢您的回答。
>> 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