# perturb

Apply perturbations to object

## Syntax

``offsets = perturb(obj)``

## Description

example

````offsets = perturb(obj)` applies the perturbations defined on the object, `obj` and returns the offset values. You can define perturbations on the object by using the `perturbations` function. ```

## Examples

collapse all

Create an `insSensor` object.

`sensor = insSensor`
```sensor = insSensor with properties: MountingLocation: [0 0 0] m RollAccuracy: 0.2 deg PitchAccuracy: 0.2 deg YawAccuracy: 1 deg PositionAccuracy: [1 1 1] m VelocityAccuracy: 0.05 m/s AccelerationAccuracy: 0 m/s² AngularVelocityAccuracy: 0 deg/s TimeInput: 0 RandomStream: 'Global stream' ```

Define the perturbation on the `RollAccuracy `property as three values with an equal possibility each.

`values = {0.1 0.2 0.3}`
```values=1×3 cell array {[0.1000]} {[0.2000]} {[0.3000]} ```
`probabilities = [1/3 1/3 1/3]`
```probabilities = 1×3 0.3333 0.3333 0.3333 ```
`perturbations(sensor,'RollAccuracy','Selection',values,probabilities)`
```ans=7×3 table Property Type Value _________________________ ___________ ______________________________________ "RollAccuracy" "Selection" {1x3 cell} {[0.3333 0.3333 0.3333]} "PitchAccuracy" "None" {[ NaN]} {[ NaN]} "YawAccuracy" "None" {[ NaN]} {[ NaN]} "PositionAccuracy" "None" {[ NaN]} {[ NaN]} "VelocityAccuracy" "None" {[ NaN]} {[ NaN]} "AccelerationAccuracy" "None" {[ NaN]} {[ NaN]} "AngularVelocityAccuracy" "None" {[ NaN]} {[ NaN]} ```

Perturb the `sensor` object using the perturb function.

```rng(2020) perturb(sensor); sensor```
```sensor = insSensor with properties: MountingLocation: [0 0 0] m RollAccuracy: 0.5 deg PitchAccuracy: 0.2 deg YawAccuracy: 1 deg PositionAccuracy: [1 1 1] m VelocityAccuracy: 0.05 m/s AccelerationAccuracy: 0 m/s² AngularVelocityAccuracy: 0 deg/s TimeInput: 0 RandomStream: 'Global stream' ```

The `RollAccuracy` is perturbed to `0.5` deg.

## Input Arguments

collapse all

Object for perturbation, specified as an object. The objects that you can perturb include:

## Output Arguments

collapse all

Property offsets, returned as an array of structures. Each structure contains these fields:

Field NameDescription
`Property`Name of perturbed property
`Offset`Offset values applied in the perturbation
`PerturbedValue`Property values after the perturbation

## Version History

Introduced in R2021a