MATLAB 帮助中心
数组的均值
M = mean(A)
M = mean(A,"all")
M = mean(A,dim)
M = mean(A,vecdim)
M = mean(___,outtype)
M = mean(___,missingflag)
M = mean(___,Weights=W)
M = mean(A) 返回 A 沿大小不等于 1 的第一个数组维度的元素的均值。
A
如果 A 是向量,则 mean(A) 返回元素均值。
mean(A)
如果 A 为矩阵,那么 mean(A) 返回包含每列均值的行向量。
如果 A 是多维数组,则 mean(A) 沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。此维度中 M 的大小变为 1,而所有其他维度的大小仍与在 A 中相同。
M
1
如果 A 是表或时间表,则 mean(A) 返回包含每个变量的均值的单行表。 (自 R2023a 起)
示例
M = mean(A,"all") 返回 A 的所有元素的均值。
"all"
M = mean(A,dim) 返回维度 dim 上的均值。例如,如果 A 为矩阵,则 mean(A,2) 返回包含每一行均值的列向量。
dim
mean(A,2)
M = mean(A,vecdim) 返回向量 vecdim 所指定的维度上的均值。例如,如果 A 是矩阵,则 mean(A,[1 2]) 返回 A 中所有元素的均值,因为矩阵的每个元素包含在由维度 1 和 2 定义的数组切片中。
vecdim
mean(A,[1 2])
M = mean(___,outtype) 返回上述任一语法的指定数据类型的均值。outtype 可以是 "default"、"double" 或 "native"。
outtype
"default"
"double"
"native"
M = mean(___,missingflag) 指定包括还是忽略 A 中的缺失值。例如,mean(A,"omitmissing") 在计算均值时会忽略所有缺失值。默认情况下,mean 包括缺失值。
missingflag
mean(A,"omitmissing")
mean
M = mean(___,Weights=W) 指定加权方案 W 并返回加权均值。 (自 R2024a 起)
W
全部折叠
创建一个矩阵并计算每列的均值。
A = [0 1 1; 2 3 2; 1 3 2; 4 2 2]
A = 4×3 0 1 1 2 3 2 1 3 2 4 2 2
M = 1×3 1.7500 2.2500 1.7500
创建一个矩阵并计算每行的均值。
A = [0 1 1; 2 3 2; 3 0 1; 1 2 3]
A = 4×3 0 1 1 2 3 2 3 0 1 1 2 3
M = mean(A,2)
M = 4×1 0.6667 2.3333 1.3333 2.0000
创建一个包含 1 到 10 之间整数的 4×2×3 数组,并沿第二个维度计算均值。
rng('default') A = randi(10,[4,2,3]); M = mean(A,2)
M = M(:,:,1) = 8.0000 5.5000 2.5000 8.0000 M(:,:,2) = 10.0000 7.5000 5.5000 6.0000 M(:,:,3) = 6.0000 5.5000 8.5000 10.0000
创建一个三维数组并计算每页数据(行和列)的均值。
A(:,:,1) = [2 4; -2 1]; A(:,:,2) = [9 13; -5 7]; A(:,:,3) = [4 4; 8 -3]; M1 = mean(A,[1 2])
M1 = M1(:,:,1) = 1.2500 M1(:,:,2) = 6 M1(:,:,3) = 3.2500
要计算一个数组的所有维度上的均值,可以在向量维参量中指定每个维度,或使用 "all" 选项。
M2 = mean(A,[1 2 3])
M2 = 3.5000
Mall = mean(A,"all")
Mall = 3.5000
创建一个由 1 组成的单精度向量并计算其单精度均值。
A = single(ones(10,1)); M = mean(A,"native")
M = single 1
结果也是单精度值。
class(M)
ans = 'single'
创建一个包含 NaN 值的矩阵。
NaN
A = [1.77 -0.005 NaN -2.95; NaN 0.34 NaN 0.19]
A = 2×4 1.7700 -0.0050 NaN -2.9500 NaN 0.3400 NaN 0.1900
计算矩阵的均值,不包括缺失值。对于包含任一 NaN 值的矩阵列,mean 使用非 NaN 元素进行计算。对于包含的值都是 NaN 的矩阵列,均值为 NaN。
M = mean(A,"omitnan")
M = 1×4 1.7700 0.1675 NaN -1.3800
自 R2024a 起
创建一个矩阵,并根据 W 指定的加权方案计算矩阵的加权均值。mean 函数将加权方案应用于 A 中的每列。
A = [1 1; 7 9; 1 9; 1 9; 6 2]; W = [1 2 1 2 3]'; M = mean(A,Weights=W)
M = 1×2 4.0000 5.7778
输入数据,指定为向量、矩阵、多维数组、表或时间表。
如果 A 是标量,则 mean(A) 返回 A。
如果 A 为 0×0 空矩阵,则 mean(A) 返回 NaN。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime | duration | table | timetable
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
logical
datetime
duration
table
timetable
沿其运算的维度,指定为正整数标量。如果不指定维度,则默认值是大小不等于 1 的第一个数组维度。
维度 dim 表示长度减至 1 的维度。size(M,dim) 为 1,而所有其他维度的大小保持不变。
size(M,dim)
以一个 m×n 输入矩阵 A 为例:
m
n
mean(A,1) 计算 A 的每列中元素的均值,并返回一个 1×n 行向量。
mean(A,1)
mean(A,2) 计算 A 的每行中元素的均值,并返回一个 m×1 列向量。
当 dim 大于 ndims(A) 或者 size(A,dim) 为 1 时,mean 返回 A。
ndims(A)
size(A,dim)
维度向量,指定为正整数向量。每个元素代表输入数据的一个维度。指定的操作维度的输出长度为 1,而其他保持不变。
以 2×3×3 输入数据 A 为例。然后 mean(A,[1 2]) 返回一个 1×1×3 数组,其元素是 A 的每个页面的均值。
输出数据类型,指定为下表中的值之一。这些选项还指定执行运算采用的数据类型。
与输入相同的数据类型,除非:
输入数据类型为 logical,在这种情况下,输出为 double
输入数据类型为 char,在这种情况下不支持 "native"
char
输入数据类型为 timetable,在这种情况下,输出为 table
"includemissing"
"includenan"
"includenat"
"omitmissing"
"omitnan"
"omitnat"
缺失值条件,指定为下表中的值之一。
在计算均值时包括 A 中的缺失值。如果运算维度中的任一元素缺失,则 M 中的对应元素也会缺失。
加权方案,指定为向量、矩阵或多维数组。W 的元素必须是非负值。
如果指定加权方案,mean 将返回加权均值,这在输入数据中的值具有不同重要性级别或输入数据偏斜时非常有用。
如果 W 是向量,其长度必须与运算维度的长度相同。否则,W 的大小必须与输入数据的大小相同。
如果输入数据 A 是表或时间表,则 W 必须为向量。
如果指定 vecdim 或 "all",则无法指定此参量。
数据类型: double | single
对于由 N 标量观测值组成的有限长向量 A,均值定义为
μ=1N∑i=1NAi.
对于由 N 个标量观测值组成的有限长度向量 A 和加权方案 W,加权均值定义为
μW=∑i=1NWiAi∑i=1NWi.
全部展开
mean 函数支持 tall 数组,但存在以下使用说明和限制:
"native" 输出数据类型选项不支持整数类型。
不支持 Weights 名称-值参量。
Weights
有关详细信息,请参阅tall 数组。
用法说明和限制:
如果使用 dim、vecdim、outtype 和 missingflag 参量,它们在代码生成时必须为常量。
代码生成不支持整数数据类型的 "native" 输出数据类型选项。
对于输入参量 A:
如果不指定维度,代码生成器将沿输入数组中具有可变大小或其大小不为 1 的第一个维度进行运算。如果此维度在代码生成时具有可变大小且在运行时为 1,则可能发生运行时错误。为避免此错误,请指定维度。
如果输入数组的所有维度在代码生成时都具有可变大小,则此数组在运行时不能为空。
如果指定 dim,则它必须为常量。
outtype 和 missingflag 选项必须为常量字符向量或字符串。
整数类型不支持 "native" 输出数据类型选项。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
mean 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
gpuArray
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
您可以计算具有 datetime 数据类型的输入数据的加权均值。在 R2024b 之前,只能计算此数据类型的未加权均值。
通过将 Weights 参数指定为加权方案来计算加权均值。您可以计算具有数值、逻辑值和 duration 数据类型的输入数据的加权均值。
mean 函数可以对表或时间表中的所有变量执行计算,而无需通过索引访问这些变量。所有变量都必须具有支持计算的数据类型。有关详细信息,请参阅Direct Calculations on Tables and Timetables。
使用 "includemissing" 或 "omitmissing" 选项计算均值时,包括还是忽略输入数据中的所有缺失值。以前,"includenan"、"omitnan"、"includenat" 和 "omitnat" 指定特定于输入数据的数据类型的缺失值条件。
在未指定运算维度的情况下对实数向量执行计算时,mean 函数的性能得到了改进。与在 R2022b 中相比,在 R2023a 中函数能够更快地确定默认运算维度。
例如,以下代码会计算沿默认向量维度的均值。代码执行速度比上一版本大约快 2.2 倍。
function timingMean A = rand(10,1); for i = 1:8e5 mean(A); end end
大致的执行时间是:
R2022b:0.91 秒
R2023a:0.41 秒
代码是在运行 Windows® 10 的 Intel® Xeon® CPU E5-1650 v4 @ 3.60 GHz 测试系统上使用 timeit 函数进行计时的。
timeit
timeit(@timingMean)
一次对输入数据的多个维度执行运算。指定一个由运算维度组成的向量,或指定 "all" 选项以对所有数组维度执行运算。
median
mode
std
var
sum
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处