Matlab数据处理之移动最小值函数movmin 您所在的位置:网站首页 BAS40-04丝印 Matlab数据处理之移动最小值函数movmin

Matlab数据处理之移动最小值函数movmin

2023-04-05 18:42| 来源: 网络整理| 查看: 265

文章目录

展开 movmin函数常见用法movmin函数语法说明movmin函数实例向量的中心移动最小值向量的尾部移动最小值矩阵的移动最小值包含 NaN 元素的向量的移动最小值基于样本点计算移动最小值仅返回满窗口最小值 4.7 (3)

Matlab中,可以使用movmin函数表示一组数据的移动最小值。移动最小值,由局部 k 个数据点范围内的居中最小值组成的数组。关于最小值函数min,可以参考:《Matlab数据处理之使用min函数获取数组最小值》。

Matlab数据处理之移动最小值函数movmin

本文主要讲解movmin函数的常见用法,语法说明,以及一些相关实例。首先,给出movmin函数的帮助文档如下:

>> help movmin movmin Moving minimum value. Y = movmin(X,K) for a vector X and positive integer scalar K computes a centered moving minimum by sliding a window of length K along X. Each element of Y is the local minimum of the corresponding values of X inside the window, with Y the same size as X. When K is even, the window is centered about the current and previous elements of X. The sliding window is truncated at the endpoints where there are fewer than K elements from X to fill the window. For N-D arrays, movmin operates along the first array dimension whose size does not equal 1. Y = movmin(X,[NB NF]) for a vector X and nonnegative integers NB and NF computes a moving minimum along the length of X, returning the local minimum of the previous NB elements, the current element, and the next NF elements of X. Y = movmin(...,DIM) operates along dimension DIM of X. movmin(...,MISSING) specifies how NaN (Not-a-Number) values are treated and can be one of the following: 'omitnan' - (default) the minimum of any window containing NaN values is the minimum of all its non-NaN elements. If all elements are NaN, the result is NaN. 'includenan' - the minimum of any window containing NaN values is also NaN. movmin(...,'Endpoints',ENDPT) controls how the minimum is calculated at the endpoints of X, where there are not enough elements to fill the window. ENDPT can be either a scalar numeric or logical value or one of the following: 'shrink' - (default) compute the minimum over the number of elements of X that are inside the window, effectively reducing the window size to fit X at the endpoints. 'fill' - compute the minimum over the full window size, filling missing values from X with Inf. This is equivalent to padding X with Inf at the endpoints. 'discard' - compute the minimum only when the window is filled with elements of X, discarding partial endpoint calculations and their corresponding elements in Y. This truncates the output; for a vector X and window length K, Y has length LENGTH(X)-K+1. When ENDPT is a scalar numeric or logical value, the missing elements of X inside the window are replaced with that value and Y remains the same size as X. Example: Compute a 5-point centered moving minimum. t = 1:10; x = [4 3 1 -2 -4 -1 0 2 -2 3]; yc = movmin(x,5); plot(t,x,t,yc); Example: Compute a 5-point trailing moving minimum. t = 1:10; x = [4 3 1 -2 -4 -1 0 2 -2 3]; yt = movmin(x,[4 0]); plot(t,x,t,yt); Example: Compute a 5-point centered moving minimum, padding the ends of the input with Inf. t = 1:10; x = [4 3 1 -2 -4 -1 0 2 -2 3]; yp = movmin(x,5,'Endpoints','fill'); plot(t,x,t,yp); Example: Compute a 5-point trailing moving minimum, ignoring the first 4 window shifts that do not contain 5 input elements. x = [4 3 1 -2 -4 -1 0 2 -2 3]; yd = movmin(x,[4 0],'Endpoints','discard');movmin函数常见用法M = movmin(A,k) M = movmin(A,[kb kf]) M = movmin(___,dim) M = movmin(___,nanflag) M = movmin(___,Name,Value)movmin函数语法说明

M = movmin(A,k) 返回由局部 k 个数据点范围内的居中最小值组成的数组,其中每个最小值基于 A 的相邻元素的长度为 k 的滑动窗计算得出。当 k 为奇数时,窗口以当前位置的元素为中心。当 k 为偶数时,窗口以当前元素及其前一个元素为中心。当没有足够的元素填满窗口时,窗口将自动在端点处截断。当窗口被截断时,只根据窗口内的元素计算最小值。M 与 A 的大小相同。

如果 A 是向量,movmin 将沿向量 A 的长度运算。如果 A 是多维数组,则 movmin 沿 A 的大小不等于 1 的第一个维度进行运算。

M = movmin(A,[kb kf]) 通过长度为 kb+kf+1 的窗口计算最小值,其中包括当前位置的元素、后面的 kb 个元素和前面的 kf 个元素。

M = movmin(_,dim) 为上述任一语法指定 A 的运算维度。例如,如果 A 是矩阵,则 movmin(A,k,2) 沿 A 的列运算,计算每行的 k 个元素的移动最小值。

M = movmin(_,nanflag) 指定在上述任意语法的计算中包括还是忽略 NaN 值。movmin(A,k,’includenan’) 会在计算中包括所有 NaN 值,而 movmin(A,k,’omitnan’) 则忽略这些值并基于较少的点计算最小值。

M = movmin(_,Name,Value) 使用一个或多个名称-值对组参数指定最小值的其他参数。例如,如果 x 是时间值向量,则 movmin(A,k,’SamplePoints’,x) 相对于 x 中的时间计算移动最小值。

movmin函数实例向量的中心移动最小值

计算行向量的三点中心移动最小值。当端点处的窗口中少于三个元素时,将根据可用元素计算最小值。

>> A = [4 8 6 -1 -2 -3 -1 3 4 5]; >> M = movmin(A,3) M = 4 4 -1 -2 -3 -3 -3 -1 3 4向量的尾部移动最小值

计算行向量的三点尾部移动最小值。当端点处的窗口中少于三个元素时,将根据可用元素计算最小值。

>> A = [4 8 6 -1 -2 -3 -1 3 4 5]; >> M = movmin(A,[2 0]) M = 4 4 4 -1 -2 -3 -3 -3 -1 3矩阵的移动最小值

计算矩阵中每行的三点中心移动最小值。窗口从第一行开始,沿水平方向移动到该行的末尾,然后移到第二行,依此类推。维度参数为 2,即跨 A 的列移动窗口。

>> A = [4 8 6; -1 -2 -3; -1 3 4] A = 4 8 6 -1 -2 -3 -1 3 4 >> M = movmin(A,3,2) M = 4 4 6 -2 -3 -3 -1 -1 3Matlab数据处理之移动最小值函数movmin包含 NaN 元素的向量的移动最小值

计算包含两个 NaN 元素的行向量的三点中心移动最小值。

>> A = [4 8 NaN -1 -2 -3 NaN 3 4 5]; >> M = movmin(A,3) M = 4 4 -1 -2 -3 -3 -3 3 3 4

重新计算最小值,但包括 NaN 值。当计算包含至少一个 NaN 值的一组元素的最小值时,movmin 将返回 NaN。

>> M = movmin(A,3,'includenan') M = 4 NaN NaN NaN -3 NaN NaN NaN 3 4基于样本点计算移动最小值

根据时间向量 t,计算 A 中数据的 3 小时中心移动最小值。

>> A = [4 8 6 -1 -2 -3]; >> k = hours(3); >> t = datetime(2016,1,1,0,0,0) + hours(0:5) t = 1 至 5 列 2016-01-01 00:00:00 2016-01-01 01:00:00 2016-01-01 02:00:00 2016-01-01 03:00:00 2016-01-01 04:00:00 6 列 2016-01-01 05:00:00

我运行如下代码报错,各位可以参考官方给的运行结果。报错原因,给出了,个人猜测版本问题。

>> M = movmin(A,k,'SamplePoints',t) 错误使用 movmin 窗口长度必须为有限标量正整数,或者为包含有限非负整数的 2 元矢量。 M = 1×6 4 4 -1 -2 -3 -3Matlab数据处理之移动最小值函数movmin仅返回满窗口最小值

计算行向量的三点中心移动最小值,但在输出中舍弃使用的点数少于三个的计算。也就是说,只返回从满的三元素窗口计算的最小值,而舍弃端点计算。

>> A = [4 8 6 -1 -2 -3 -1 3 4 5]; M = movmin(A,3,'Endpoints','discard') M = 4 -1 -2 -3 -3 -3 -1 3

共计3人评分,平均4.7分

到目前为止还没有投票~

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

让我们改善这篇文章!

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

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有