M = movsum( returns
an array of local
k-point sums, where each sum
is calculated over a sliding window of length
neighboring elements of
odd, the window is centered about the element in the current position.
k is even, the window is centered about the
current and previous elements. The window size is automatically truncated
at the endpoints when there are not enough elements to fill the window.
When the window is truncated, the sum is taken over only the elements
that fill the window.
M is the same size as
Ais a vector, then
movsumoperates along the length of the vector.
Ais a multidimensional array, then
movsumoperates along the first array dimension whose size does not equal 1.
M = movsum(___, returns
the array of sliding sums along dimension
any of the previous syntaxes. For example, if
a matrix, then
movsum(A,k,2) operates along the
A, computing the
sliding sum for each row.
M = movsum(___, specifies
whether to include or omit
NaN values from the
calculation for any of the previous syntaxes.
NaN values in the calculation while
them and computes the sum over fewer points.
Centered Moving Sum of Vector
Compute the three-point centered moving sum of a row vector. When there are fewer than three elements in the window at the endpoints, take the sum over the elements that are available.
A = [4 8 6 -1 -2 -3 -1 3 4 5]; M = movsum(A,3)
M = 1×10 12 18 13 3 -6 -6 -1 6 12 9
Trailing Moving Sum of Vector
Compute the three-point trailing moving sum of a row vector. When there are fewer than three elements in the window at the endpoints,
movsum takes the sum over the number of elements that are available.
A = [4 8 6 -1 -2 -3 -1 3 4 5]; M = movsum(A,[2 0])
M = 1×10 4 12 18 13 3 -6 -6 -1 6 12
Moving Sum of Matrix
Compute the three-point centered moving sum for each row of a matrix. The window starts on the first row, slides horizontally to the end of the row, then moves to the second row, and so on. The dimension argument is two, which slides the window across the columns of
A = [4 8 6; -1 -2 -3; -1 3 4]
A = 3×3 4 8 6 -1 -2 -3 -1 3 4
M = movsum(A,3,2)
M = 3×3 12 18 14 -3 -6 -5 2 6 7
Moving Sum of Vector with
Compute the three-point centered moving sum of a row vector containing two
A = [4 8 NaN -1 -2 -3 NaN 3 4 5]; M = movsum(A,3)
M = 1×10 12 NaN NaN NaN -6 NaN NaN NaN 12 9
Recalculate the sum, but omit the
NaN values. When
NaN elements, it takes the sum over the remaining elements in the window.
M = movsum(A,3,'omitnan')
M = 1×10 12 12 7 -3 -6 -5 0 7 12 9
Sample Points for Moving Sum
Compute a 3-hour centered moving sum of the data in
A according to the time vector
A = [4 8 6 -1 -2 -3]; k = hours(3); t = datetime(16,1,1,0,0,0) + hours(0:5)
t = 1x6 datetime Columns 1 through 3 01-Jan-0016 00:00:00 01-Jan-0016 01:00:00 01-Jan-0016 02:00:00 Columns 4 through 6 01-Jan-0016 03:00:00 01-Jan-0016 04:00:00 01-Jan-0016 05:00:00
M = movsum(A,k,'SamplePoints',t)
M = 1×6 12 18 13 3 -6 -5
Return Only Full-Window Sums
Compute the three-point centered moving sum of a row vector, but discard any calculation that uses fewer than three points from the output. In other words, return only the sums computed from a full three-element window, discarding endpoint calculations.
A = [4 8 6 -1 -2 -3 -1 3 4 5]; M = movsum(A,3,'Endpoints','discard')
M = 1×8 18 13 3 -6 -6 -1 6 12
A — Input array
vector | matrix | multidimensional array
Input array, specified as a vector, matrix, or multidimensional array.
k — Window length
numeric or duration scalar
Window length, specified as a numeric or duration scalar. When
a positive integer scalar, the centered sum includes the element in
the current position plus surrounding neighbors. For example, a three-point
sum defined by a window of length three results in the following calculation
for a vector
[kb kf] — Directional window length
numeric or duration row vector containing two elements
Directional window length, specified as a numeric or duration
row vector containing two elements. When
positive integer scalars, the calculation is over
The calculation includes the element in the current position,
before the current position, and
kf elements after
the current position. For example, a four-point sum defined by the
[2 1] results in the following
calculation for a vector
dim — Dimension to operate along
positive integer scalar
Dimension to operate along, specified as a positive integer scalar. If no value is specified, then the default is the first array dimension whose size does not equal 1.
dim indicates the dimension that
along, that is, the direction in which the specified window slides.
Consider a two-dimensional input array,
dim = 1, then
movsum(A,k,1)starts with the first column and slides vertically over each row. The sum is computed over
kelements at a time. Then it moves to the second column and repeats the computation. This process continues until all columns are exhausted.
dim = 2, then
movsum(A,k,2)starts with the first row and slides horizontally across each column. The sum is computed over
kelements at a time. Then it moves to the second row and repeats the computation. This process continues until all rows are exhausted.
'includenan' (default) |
NaN condition, specified as one of these
NaNvalues when computing the sum, resulting in
'omitnan'— Ignore all
NaNvalues in the input. If a window contains only
comma-separated pairs of
the argument name and
Value is the corresponding value.
Name must appear inside quotes. You can specify several name and value
pair arguments in any order as
M = movsum(A,k,'Endpoints','fill')
Endpoints — Method to treat leading and trailing windows
'shrink' (default) |
'fill' | numeric or logical scalar
Method to treat leading and trailing windows, specified as the
comma-separated pair consisting of
one of the following:
|Shrink the window size near the endpoints of the input to include only existing elements.|
|Do not output any sums when the window does not completely overlap with existing elements.|
|Substitute nonexisting elements with |
|numeric or logical scalar||Substitute nonexisting elements with a specified numeric or logical value.|
SamplePoints — Sample points for computing sums
Sample points for computing sums, specified as the comma-separated
pair consisting of
'SamplePoints' and a vector.
The sample points represent the location of the data in
Sample points do not need to be uniformly sampled. By default, the
sample points vector is
[1 2 3 ... ].
Moving windows are defined relative to the sample points, which
must be sorted and contain unique elements. For example, if
a vector of times corresponding to the input data, then
a window that represents the time interval between
When the sample points vector has data type
then the moving window length must have type
If the sample points are nonuniformly spaced and the
pair is specified, then its value must be
Calculate with arrays that have more rows than fit in memory.
This function supports tall arrays with the limitations:
'SamplePoints' name-value pair is not
For more information, see Tall Arrays.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
This function supports C/C++ code generation with the limitations:
Code generation does not support sparse matrix inputs for this function.
Run code in the background using MATLAB®
backgroundPool or accelerate code with Parallel Computing Toolbox™
This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
Usage notes and limitations:
'SamplePoints'name-value pair is not supported.
For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).