# getElementNormal

System object: phased.UCA
Package: phased

Normal vectors for array elements

## Syntax

```normvec = getElementNormal(sArray) normvec = getElementNormal(sArray,elemidx) ```

## Description

`normvec = getElementNormal(sArray)` returns the element normals of the `phased.UCA` System object™, `sArray`. `normv` is a 2-by-N matrix, where N is the number of elements in `sArray`. Each column of `normv` specifies the normal direction of the corresponding element in the local coordinate system in the form `[azimuth;elevation]`. Units are degrees. For details regarding the local coordinate system of a UCA, type

`phased.UCA.coordinateSystemInfo;`
at the command line.

`normvec = getElementNormal(sArray,elemidx)` returns only the normals of the elements that are specified in the element index vector `elemidx`.

## Input Arguments

expand all

Uniform circular array, specified as a `phased.UCA` System object.

Example: `phased.UCA`

Element index vector, specified as a vector of positive integers each of which takes a value from 1 to N. The dimension N is the number of elements of the array.

Example: `[1,2,3]`

## Output Arguments

expand all

Normal vector of array elements, returned as a 2-by-M real matrix. Each column of `normvec` specifies the normal direction of the corresponding element in the local coordinate system in the form `[azimuth;elevation]`. Units are degrees. If the input argument `elemidx` is not specified, M is the number of elements of the array, N. If `elemidx` is specified, M is the dimension of `elemidx`.

## Examples

expand all

Construct three different 7-element UCA with a radius of 0.5 meters, and obtain the normal vectors of the middle three elements. Choose the array normal vectors to point along the x-, y-, and z-axes.

First, choose the array normal along the x-axis.

```sUCA1 = phased.UCA('NumElements',7,'Radius',0.5,'ArrayNormal','x'); pos = getElementPosition(sUCA1,[3,4,5])```
```pos = 3×3 0 0 0 0.3117 0.5000 0.3117 -0.3909 0 0.3909 ```
`normvec = getElementNormal(sUCA1,[3,4,5])`
```normvec = 2×3 90.0000 90.0000 90.0000 -51.4286 0 51.4286 ```

These outputs show that the array elements lie in the yz-plane. The normal vectors of the array elements also lie in the yz-plane and point outward like spokes on a wheel.

Next, choose the array normal along the y-axis.

```sUCA2 = phased.UCA('NumElements',7,'Radius',0.5,'ArrayNormal','y'); pos = getElementPosition(sUCA2,[3,4,5])```
```pos = 3×3 0.3117 0.5000 0.3117 0 0 0 -0.3909 0 0.3909 ```
`normvec = getElementNormal(sUCA2,[3,4,5])`
```normvec = 2×3 0 0 0 -51.4286 0 51.4286 ```

These outputs show that the array elements lie in the zx-plane. The normal vectors of the array elements also lie in the zx-plane and also point outward.

Finally, set the array normal along the z-axis. This is the default value of array normal.

```sUCA3 = phased.UCA('NumElements',7,'Radius',0.5,'ArrayNormal','z'); pos = getElementPosition(sUCA3,[3,4,5])```
```pos = 3×3 0.3117 0.5000 0.3117 -0.3909 0 0.3909 0 0 0 ```
`normvec = getElementNormal(sUCA3,[3,4,5])`
```normvec = 2×3 -51.4286 0 51.4286 0 0 0 ```

These outputs show that the array elements lie in the xy-plane. The normal vectors of the array elements also lie in the xy-plane and also point outward.

## Version History

Introduced in R2015a