本文讲解Matlab中数据分析处理相关的函数,median中值函数属于Matlab数据处理的基本操作之一。可以用来获取一组数据、多维数据中的中值。文中,将给出几个实例来说明median函数的用法。
首先,这里给出median函数获取中值,这个中值相关的定义如下:
MEDIAN 函数是一种计算机函数,能够返回给定数值的中值,中值是在一组数值中居于中间的数值,如果参数集合中包含偶数个数字,函数 MEDIAN 将返回位于中间的两个数的平均值。当然,如果数组中元素个数为奇数,那么中值就是位于中间的那个数值。
>> help median
median Median value.
For vectors, median(x) is the median value of the elements in x.
For matrices, median(X) is a row vector containing the median value
of each column. For N-D arrays, median(X) is the median value of the
elements along the first non-singleton dimension of X.
median(X, DIM) takes the median along the dimension DIM of X.
median(..., MISSING) specifies how NaN (Not-A-Number) values
are treated. The default is 'includenan':
'includenan' - the median of a vector containing NaN values is also NaN.
'omitnan' - the median of a vector containing NaN values is the
median of all its non-NaN elements. If all elements
are NaN, the result is NaN.
Example: If X = [1 2 4 4; 3 4 6 6; 5 6 8 8; 5 6 8 8];
then median(X) is [4 5 7 7] and median(X,2) is [3; 5; 7; 7]
Class support for input X:
float: double, single
integer: uint8, int8, uint16, int16, uint32, int32, uint64, int64
median函数基本用法
M = median(A)
M = median(A,dim)
M = median(___,nanflag)
median函数用法介绍
M=median(A)返回A的中值。
- 如果A是向量,则median(A)返回A的中值。
- 如果A是非空矩阵,则median(A)将A的列视为向量,并返回中值的行向量。
- 如果A是空的0乘0矩阵,则中值(A)返回NaN。
- 如果A是多维数组,则median(A)将第一个数组维度上大小不等于1的值视为向量。此维度的大小变为1,而所有其他维度的大小保持不变。
中值计算不会改变数据的类型,即,class(M)=class(A)。
M=median(A,dim)返回沿尺寸dim的元素的中值。例如,如果A是矩阵,则中值(A,2)是包含每行中值的列向量。
M=median(_,nanflag)可选地指定在前面任何语法的中值计算中是否包含或忽略NaN值。例如,中值(A,’omitnan’)忽略A中的所有NaN值。
median函数实例
矩阵列的中值
定义一个4乘3矩阵,查找每列的中值。
>> A = [0 1 1; 2 3 2; 1 3 2; 4 2 2]
A =
0 1 1
2 3 2
1 3 2
4 2 2
>> M = median(A)
M =
1.5000 2.5000 2.0000
由于该矩阵包含偶数行,对于每一列,中值是按排序顺序排列的中间两个数字的平均值。
矩阵行的中值
定义一个2乘3矩阵,查找每行的中值。
>> A = [0 1 1; 2 3 2]
A =
0 1 1
2 3 2
>> M = median(A,2)
M =
1
2
由于该矩阵包含奇数列,对于每一行,中值是按排序顺序排列的中间值。
三维阵列中值
创建1到10之间的1乘3乘4整数数组,沿第二维度查找此三维数组的中值。
>> A = gallery('integerdata',10,[1,3,4],1)
A(:,:,1) =
10 8 10
A(:,:,2) =
6 9 5
A(:,:,3) =
9 6 1
A(:,:,4) =
4 9 5
>> M = median(A)
M(:,:,1) =
10
M(:,:,2) =
6
M(:,:,3) =
6
M(:,:,4) =
5
此操作通过计算沿第二维度的三个值的中值来产生1乘1乘4的阵列。第二维度的大小减小为1。
沿A的第一个维度计算中值:
>> M = median(A,1);
>> isequal(A,M)
ans =
1
此命令返回与A相同的数组,因为第一个维度的大小为1。
8位整数数组的中值
定义8位整数的1乘4矢量,计算中值。
>> A = int8(1:4)
A =
1 2 3 4
>> M = median(A)
>> class(M)
M =
3
ans =
int8
M是按排序顺序返回的中间两个数字的平均值,作为8位整数。
不含NaN的中值
创建一个向量并计算其中值,不包括NaN值。
>> A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];
M = median(A,'omitnan')
M =
0.2650
原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/3772.html