帮助中心帮助中心
nansum
(不推荐)总和,忽略 NaN 值
NaN
不推荐使用 nansum。请改用 MATLAB® 函数 sum。使用 sum 函数,您可以指定在计算时是包括还是省略 NaN 值。有关详细信息,请参阅兼容性注意事项。
sum
y = nansum(X)
y = nansum(X,'all')
y = nansum(X,dim)
y = nansum(X,vecdim)
示例
y = nansum(X) 返回 X 的元素的 sum,在删除所有 NaN 值后进行计算。
y
X
如果 X 是向量,则 nansum(X) 是 X 的所有非 NaN 元素的总和。
nansum(X)
如果 X 是矩阵,则 nansum(X) 是列总和组成的行向量,在删除 NaN 值后计算。
如果 X 是多维数组,则 nansum 沿 X 的第一个非单一维度执行运算。此维度的大小变为 1,而所有其他维度的大小保持不变。nansum 删除所有 NaN 值。
有关 nansum 如何处理包含的值全为 NaN 的数组的信息,请参阅提示。
y = nansum(X,'all') 返回 X 的所有元素的总和,在删除 NaN 值后计算。
y = nansum(X,dim) 返回沿 X 的运算维度 dim 的总和,该总和在删除 NaN 值后计算得出。
dim
y = nansum(X,vecdim) 返回向量 vecdim 中指定的维度上的总和。该函数在删除 NaN 值后计算总和。例如,如果 X 是矩阵,则 nansum(X,[1 2]) 是 X 中所有非 NaN 元素的总和,因为矩阵的每个元素都包含在由维度 1 和 2 定义的数组切片中。
vecdim
nansum(X,[1 2])
全部折叠
求具有缺失值的矩阵数据的列值总和。
X = magic(3); X([1 6:9]) = NaN
X = 3×3 NaN 1 NaN 3 5 NaN 4 NaN NaN
y = 1×3 7 6 0
计算一个数组中所有值的总和,忽略缺失值。
创建一个包含一些缺失值的 2×4×3 数组 X。
X = reshape(1:24,[2 4 3]); X([5:6 20]) = NaN
X = X(:,:,1) = 1 3 NaN 7 2 4 NaN 8 X(:,:,2) = 9 11 13 15 10 12 14 16 X(:,:,3) = 17 19 21 23 18 NaN 22 24
求 X 的元素的总和。
y = 269
通过指定沿第二个维度计算总和,求具有缺失值的矩阵数据的行值总和。
y = nansum(X,2)
y = 3×1 1 8 4
求多维数组在多个维度上的和。
通过将维度 1 和 2 指定为运算维度,求出 X 的每页的总和。
ypage = nansum(X,[1 2])
ypage = ypage(:,:,1) = 25 ypage(:,:,2) = 100 ypage(:,:,3) = 144
例如,ypage(1,1,1) 是 X(:,:,1) 中非 NaN 元素的总和。
ypage(1,1,1)
X(:,:,1)
通过将维度 2 和 3 指定为运算维度,求出每个 X(i,:,:) 切片中元素的总和。
X(i,:,:)
yrow = nansum(X,[2 3])
yrow = 2×1 139 130
例如,yrow(2) 是 X(2,:,:) 中非 NaN 元素的总和。
yrow(2)
X(2,:,:)
输入数据,指定为标量、向量、矩阵或多维数组。
如果 X 是空数组,则 nansum(X) 为 0。
0
数据类型: single | double
single
double
用于运算的维度,指定为正整数标量。如果不指定值,则默认值是大小不等于 1 的第一个数组维度。
dim 表示其长度减小到 1 的维度。size(y,dim) 为 1,而所有其他维度的大小保持不变。
size(y,dim)
假设有一个二维数组 X:
如果 dim 等于 1,则 nansum(X,1) 返回一个包含每列的总和的行向量。
nansum(X,1)
如果 dim 等于 2,则 nansum(X,2) 返回一个包含每行的总和的列向量。
nansum(X,2)
如果 dim 大于 ndims(X) 或者如果 size(X,dim) 为 1,则 nansum 返回 X,用 0 值代替任何缺失值。
ndims(X)
size(X,dim)
维度向量,指定为正整数向量。vecdim 的每个元素表示输入数组 X 的一个维度。输出 y 的指定运算维度长度为 1。X 和 y 的其他维度长度相同。
例如,如果 X 为 2×3×3 数组,则 nansum(X,[1 2]) 返回 1×1×3 数组。输出数组的每个元素均为 X 的对应页上的元素的总和。
总和值,以标量、向量、矩阵或多维数组形式返回。
当 nansum 计算全部由 NaN 值组成的数组的总和时,一旦 NaN 值被删除,则数组为空,因此其余元素的总和为 0。输出 0 不是 NaN 值的和。
用法说明和限制:
不支持 'all' 和 vecdim 输入参量。
'all'
dim 输入参量必须为编译时常量。
如果未指定 dim 输入参量,则生成的代码中的工作(或运算)维度可能不同。因此,可能会出现运行时错误。有关详细信息,请参阅Automatic dimension restriction (MATLAB Coder)。
有关代码生成的详细信息,请参阅 Introduction to Code Generation 和 General Code Generation Workflow。
有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
不推荐使用 nansum。请改用 MATLAB 函数 sum。目前没有删除 nansum 的计划。
要更新您的代码,请将函数名称 nansum 的实例更改为 sum。然后为 nanflag 输入参量指定 'omitnan' 选项。
nanflag
'omitnan'
与 nansum 函数相比,sum 函数具有以下优势:
sum 提供更多扩展功能,支持 tall 数组、GPU 数组、分布数组、C/C++ 代码生成和 GPU 代码生成。
sum 返回具有指定数据类型的输出值。
NaN | sum
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office