# getElementNormal

System object: phased.ConformalArray
Namespace: phased

Normal vector to array elements

## Syntax

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

## Description

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

Conformal array, specified as a `phased.ConformalArray` System object.

Example: `phased.ConformalArray`

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 a 5-element acoustic cross array (UCA) using the ConformalArray System object™. Assume the operating frequency is 4 kHz. A typical value for the speed of sound in seawater is 1500.0 m/s. Display the array normal vectors.

```N = 5; fc = 4000; c = 1500.0; lam = c/fc; x = zeros(1,N); y = [-1,0,1,0,0]*lam/2; z = [0,0,0,-1,1]*lam/2; sMic = phased.OmnidirectionalMicrophoneElement(... 'FrequencyRange',[0,10000],'BackBaffled',true); sConformArray = phased.ConformalArray('Element',sMic,... 'ElementPosition',[x;y;z],... 'ElementNormal',[45*ones(1,N);zeros(1,N)]); pos = getElementPosition(sConformArray)```
```pos = 3×5 0 0 0 0 0 -0.1875 0 0.1875 0 0 0 0 0 -0.1875 0.1875 ```
`normvec = getElementNormal(sConformArray)`
```normvec = 2×5 45 45 45 45 45 0 0 0 0 0 ```

## Version History

Introduced in R2016a