# quat

Convert transformation or rotation to numeric quaternion

Since R2023b

## Syntax

``q = quat(transformation)``
``q = quat(rotation)``

## Description

example

````q = quat(transformation)` creates a quaternion `q` from the rotation of the transformation `transformation`.```

example

````q = quat(rotation)` creates a quaternion `q` from the rotation `rotation`.```

## Examples

collapse all

Create SE(3) transformation with zero translation and a rotation defined by a numeric quaternion. Use the `eul2quat` function to create the numeric quaternion.

`quat1 = eul2quat([0 0 deg2rad(30)])`
```quat1 = 1×4 0.9659 0.2588 0 0 ```
`T = se3(quat1,"quat")`
```T = se3 1.0000 0 0 0 0 0.8660 -0.5000 0 0 0.5000 0.8660 0 0 0 0 1.0000 ```

Convert the transformation back into a numeric quaternion.

`quat2 = quat(T)`
```quat2 = 1×4 0.9659 0.2588 0 0 ```

Create SO(3) rotation defined by a numeric quaternion. Use the `eul2quat` function to create the numeric quaternion.

`quat1 = eul2quat([0 0 deg2rad(30)])`
```quat1 = 1×4 0.9659 0.2588 0 0 ```
`R = so3(quat1,"quat")`
```R = so3 1.0000 0 0 0 0.8660 -0.5000 0 0.5000 0.8660 ```

Convert the rotation into a numeric quaternion.

`quat2 = quat(R)`
```quat2 = 1×4 0.9659 0.2588 0 0 ```

## Input Arguments

collapse all

Transformation, specified as an `se3` object or as an N-element array of `se3` objects. N is the total number of transformations.

Rotation, specified as an `so3` object or as an N-element array of `so3` objects. N is the total number of rotations.

## Output Arguments

collapse all

Quaternion rotation angles, returned as an M-by-4 matrix, where each row is of the form [qw qx qy qz]. M is the total number of transformations or rotations specified.

## Version History

Introduced in R2023b