# rms

Root-mean-square value

## Syntax

``y = rms(x)``
``y = rms(x,"all")``
``y = rms(x,dim)``
``y = rms(x,vecdim)``
``y = rms(___,nanflag)``

## Description

example

````y = rms(x)` returns the root-mean-square (RMS) value of the input, `x`. If `x` is a row or column vector, then `y` is a real-valued scalar.If `x` is a matrix, then `y` is a row vector containing the RMS value for each column.If `x` is a multidimensional array, then `y` contains the RMS values computed along the first array dimension of size greater than 1. The size of this dimension is `1` while the sizes of all other dimensions remain the same as `x`. ```
````y = rms(x,"all")` returns the RMS value of all elements in `x`.```

example

````y = rms(x,dim)` operates along the dimension `dim`. For example, if `x` is a matrix, then `rms(x,2)` operates on the elements in each row and returns a column vector containing the RMS value of each row..```

example

````y = rms(x,vecdim)` operates along the dimensions specified in the vector `vecdim`. For example, if `x` is a matrix, then ```rms(x,[1 2])``` operates on all the elements of `x` because every element of a matrix is contained in the array slice defined by dimensions 1 and 2.```
````y = rms(___,nanflag)` optionally specifies whether to include or omit `NaN` values in the calculation for any of the previous syntaxes. For example, `rms(x,"includenan")` includes the `NaN` values in the calculation while `rms(x,"omitnan")` ignores them.```

## Examples

collapse all

Compute the RMS value of a sinusoid.

```t = 0:0.001:1-0.001; x = cos(2*pi*100*t); y = rms(x)```
```y = 0.7071 ```

Create a matrix and compute the RMS value of each column.

```x = [4 -5 1; 2 3 5; -9 1 7]; y = rms(x)```
```y = 1×3 5.8023 3.4157 5.0000 ```

Create a matrix and compute the RMS value of each row by specifying the dimension as 2.

```x = [6 4 23 -3; 9 -10 4 11; 2 8 -5 1]; y = rms(x,2)```
```y = 3×1 12.1450 8.9163 4.8477 ```

Create a 3-D array and compute the RMS value over each page of data (rows and columns).

```x(:,:,1) = [2 4; -2 1]; x(:,:,2) = [9 13; -5 7]; x(:,:,3) = [4 4; 8 -3]; y = rms(x,[1 2])```
```y = y(:,:,1) = 2.5000 y(:,:,2) = 9 y(:,:,3) = 5.1235 ```

Create a vector and compute the RMS value, excluding `NaN` values by specifying the `"omitnan"` option.

```x = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19]; y = rms(x,"omitnan")```
```y = 2.1536 ```

If you do not specify "`omitnan"`, then `rms` returns `NaN`.

## Input Arguments

collapse all

Input array, specified as a vector, matrix, or multidimensional array.

Data Types: `single` | `double` | `logical` | `char`
Complex Number Support: Yes

Dimension to operate along, specified as a positive integer scalar. If you do not specify the dimension, then the default is the first array dimension of size greater than 1.

Dimension `dim` indicates the dimension whose length reduces to `1`. The `size(y,dim)` is `1`, while the sizes of all other dimensions remain the same as `x`.

Consider an `m`-by-`n` input matrix, `x`:

• `y = rms(x,1)` computes the RMS value of the elements in each column of `x` and returns a `1`-by-`n` row vector.

• `y = rms(x,2)` computes the RMS value of the elements in each row of `x` and returns an `m`-by-`1` column vector.

Vector of dimensions to operate along, specified as a vector of positive integers. Each element represents a dimension of the input array. The length of the output in the specified operating dimensions is 1, while the other dimension lengths remain the same as the input.

For example, if `x` is a 2-by-3-by-3 array, then `rms(x,[1 2])` returns a 1-by-1-by-3 array whose elements are the RMS values over each page of `x`.

`NaN` condition, specified as one of these values:

• `"includenan"` — Include `NaN` values when computing the RMS values, resulting in `NaN`.

• `"omitnan"` — Ignore all `NaN` values in the input. If all elements are `NaN`, the result is `NaN`.

## Output Arguments

collapse all

Root-mean-square value, returned as a scalar, vector, or multidimensional array.

• If `x` is a row or column vector, then `y` is a scalar.

• If `x` is a matrix, then `y` is a vector containing the RMS values computed along dimension `dim` or dimensions `vecdim`.

• If `x` is a multidimensional array, then `y` contains the RMS values computed along the dimension `dim` or dimensions `vecdim`. The size of this dimension is `1` while the sizes of all other dimensions remain the same as `x`.

collapse all

### Root-Mean-Square Value

The root-mean-square value of an array x is

`${x}_{\text{RMS}}=\sqrt{\frac{1}{N}\sum _{n=1}^{N}{|{x}_{n}|}^{2}},$`

with the summation performed along the specified dimension.

## Version History

Introduced in R2012a

expand all