# getElementNormal

System object: phased.HeterogeneousURA
Package: phased

Normal vector to array elements

## Syntax

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

## Description

`normvec = getElementNormal(sURA)` returns the normal vectors of the array elements of the `phased.URA` System object™, `sURA`. The output argument `normvec` is a 2-by-N matrix, where N is the number of elements in array, `sURA`. Each column of `normvec` defines the normal direction of an element in the local coordinate system in the form`[az;el]`. Units are degrees. The origin of the local coordinate system is defined by the phase center of the array.

`normvec = getElementNormal(sURA,elemidx)` returns only the normal vectors of the elements specified in the element index vector, `elemidx`. This syntax can use any of the input arguments in the previous syntax.

## Input Arguments

expand all

Uniform line array, specified as a `phased.HeterogeneousURA` System object.

Example: `sULA = phased.HeterogeneousURA`

Element indices , specified as a 1-by-M or M-by-1 vector. Index values lie in the range 1 to N where N is the number of elements of the array. When `elemidx` is specified, `getElementNormal` returns the normal vectors of the elements contained in `elemidx`.

Example: `[1,5,4]`

## Output Arguments

expand all

Element normal vectors, specified as a 2-by-P real-valued vector. Each column of `normvec` takes the form `[az,el]`. When `elemidx` is not specified, P equals the array dimension. When `elemidx` is specified, P equals the length of `elemidx`, M. You can determine element indices using the `viewArray` method.

## Examples

expand all

Construct three 2-by-2 URA's with element normals along the x-, y-, and z-axes. Obtain the element positions and normal directions.

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

```sURA1 = phased.URA('Size',[2,2],'ArrayNormal','x'); pos = getElementPosition(sURA1)```
```pos = 3×4 0 0 0 0 -0.2500 -0.2500 0.2500 0.2500 0.2500 -0.2500 0.2500 -0.2500 ```
`normvec = getElementNormal(sURA1)`
```normvec = 2×4 0 0 0 0 0 0 0 0 ```

All elements lie in the yz-plane and the element normal vectors point along the x-axis (0°,0°).

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

```sURA2 = phased.URA('Size',[2,2],'ArrayNormal','y'); pos = getElementPosition(sURA2)```
```pos = 3×4 0.2500 0.2500 -0.2500 -0.2500 0 0 0 0 0.2500 -0.2500 0.2500 -0.2500 ```
`normvec = getElementNormal(sURA2)`
```normvec = 2×4 90 90 90 90 0 0 0 0 ```

All elements lie in the zx-plane and the element normal vectors point along the y-axis (90°,0°).

Finally, set the array normal along the z-axis. Obtain the normal vectors of the odd-numbered elements.

```sURA3 = phased.URA('Size',[2,2],'ArrayNormal','z'); pos = getElementPosition(sURA3)```
```pos = 3×4 -0.2500 -0.2500 0.2500 0.2500 0.2500 -0.2500 0.2500 -0.2500 0 0 0 0 ```
`normvec = getElementNormal(sURA3,[1,3])`
```normvec = 2×2 0 0 90 90 ```

All elements lie in the xy-plane and the element normal vectors point along the z-axis (0°,90°).

Introduced in R2016a