# getElementNormal

System object: phased.HeterogeneousULA
Package: phased

Normal vector to array elements

## Syntax

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

## Description

`normvec = getElementNormal(sULA)` returns the normal vectors of the array elements of the `phased.HeterogeneousULA` System object™, `sULA`. The output argument `normvec` is a 2-by-N matrix, where N is the number of elements in array, `sULA`. 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(sULA,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.HeterogeneousULA` System object.

Example: `sULA = phased.HeterogeneousULA`

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.

## Examples

expand all

Construct three 5-element heterogeneous ULA's with elements along the x-, y-, and z-axes. Obtain the element normals.

Create two types of cosine antennas.

```sCosAnt1 = phased.CosineAntennaElement('CosinePower',[1.5,1.5]); sCosAnt2 = phased.CosineAntennaElement('CosinePower',[1.8,1.8]);```

First, choose the array axis to lie along the x-axis.

```sULA1 = phased.HeterogeneousULA('ElementSet',{sCosAnt1,sCosAnt2},... 'ElementIndices',[1 2 2 2 1],'ArrayAxis','x'); norm = getElementNormal(sULA1)```
```norm = 2×5 90 90 90 90 90 0 0 0 0 0 ```

The element normal vectors point along the y-axis.

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

```sULA2 = phased.HeterogeneousULA('ElementSet',{sCosAnt1,sCosAnt2},... 'ElementIndices',[1 2 2 2 1],'ArrayAxis','y'); norm = getElementNormal(sULA2)```
```norm = 2×5 0 0 0 0 0 0 0 0 0 0 ```

The element normal vectors point along the x-axis.

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

```sULA3 = phased.HeterogeneousULA('ElementSet',{sCosAnt1,sCosAnt2},... 'ElementIndices',[1 2 2 2 1],'ArrayAxis','z'); norm = getElementNormal(sULA3,[1,3,5])```
```norm = 2×3 0 0 0 0 0 0 ```

The element normal vectors also point along the x-axis.

## Version History

Introduced in R2016a