Matlab数据处理之median函数获取数组中值

4.7
(3)

本文讲解Matlab中数据分析处理相关的函数,median中值函数属于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。

Matlab数据处理之median函数获取数组中值

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

共计3人评分,平均4.7

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/3772.html

(0)
微信公众号
古哥的头像古哥管理团队
上一篇 2022年12月15日 21:30
下一篇 2022年12月16日 20:43

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号