# zpkdata

Access zero-pole-gain data

## Syntax

``[z,p,k] = zpkdata(sys)``
``[z,p,k,Ts] = zpkdata(sys)``
``[z,p,k,Ts,covz,covp,covk] = zpkdata(sys)``
``[z,p,k] = zpkdata(sys,'v')``

## Description

example

````[z,p,k] = zpkdata(sys)` returns the zeros `z`, poles `p`, and gain(s) `k` of the zero-pole-gain model `sys`.```
````[z,p,k,Ts] = zpkdata(sys)` also returns the sample time `Ts`.```

example

````[z,p,k,Ts,covz,covp,covk] = zpkdata(sys)` also returns the covariances of the zeros, poles and gain of the identified model `sys`.```
````[z,p,k] = zpkdata(sys,'v')` returns the zeros and poles directly as column vectors for SISO zero-pole-gain models.```

## Examples

collapse all

Given a zero-pole-gain model with two outputs and one input

`H = zpk({[0];[-0.5]},{[0.3];[0.1+i 0.1-i]},[1;2],-1)`
```Zero/pole/gain from input to output... z #1: ------- (z-0.3) 2 (z+0.5) #2: ------------------- (z^2 - 0.2z + 1.01) Sample time: unspecified ```

you can extract the zero/pole/gain data embedded in `H` with

`[z,p,k] = zpkdata(H)`
```z = [ 0] [-0.5000] p = [ 0.3000] [2x1 double] k = 1 2 ```

To access the zeros and poles of the second output channel of `H`, get the content of the second cell in `z` and `p` by typing

`z{2,1}`
```ans = -0.5000```
`p{2,1}`
```ans = 0.1000+ 1.0000i 0.1000- 1.0000i ```

Extract the ZPK matrices and their standard deviations for a 2-input, 1 output identified transfer function.

```load iddata7 ```

transfer function model

`sys1 = tfest(z7, 2, 1, 'InputDelay',[1 0]);`

an equivalent process model

```sys2 = procest(z7, {'P2UZ', 'P2UZ'}, 'InputDelay',[1 0]); [z1, p1, k1, ~, dz1, dp1, dk1] = zpkdata(sys1); [z2, p2, k2, ~, dz2, dp2, dk2] = zpkdata(sys2);```

Use `iopzplot` to visualize the pole-zero locations and their covariances

```h = iopzplot(sys1, sys2); showConfidence(h)```

## Input Arguments

collapse all

Zero-pole-gain model, specified as a `zpk` model object.

## Output Arguments

collapse all

Zeros of the zero-pole-gain model, returned as a cell array with as many rows as outputs and as many columns as inputs. The `(i,j)` entry `z{i,j}` is the (column) vector of zeros of the transfer function from input `j` to output `i`.

Poles of the zero-pole-gain model, returned as a cell array with as many rows as outputs and as many columns as inputs. The `(i,j)` entry `p{i,j}` is the (column) vector of zeros of the transfer function from input `j` to output `i`.

Gain of the zero-pole-gain model, returned as a matrix with as many rows as outputs and as many columns as inputs such that `k(i,j)` is the gain of the transfer function from input `j` to output `i`. If `sys` is a transfer function or state-space model, it is first converted to zero-pole-gain form using `zpk`.

Sample time, specified as a scalar.

Covariance of zeros, returned as a cell array such that `covz{ky,ku}` contains the covariance information about the zeros in the vector `z{ky,ku}`. `covz{ky,ku}` is a 3-D array of dimension 2-by-2-by-Nz, where `Nz` is the length of `z{ky,ku}`, so that the `(1,1)` element is the variance of the real part, the `(2,2)` element is the variance of the imaginary part, and the `(1,2)` and `(2,1)` elements contain the covariance between the real and imaginary parts.

Covariance of poles, returned as a cell array such that `covp{ky,ku}` contains the covariance information about the poles in the vector `p{ky,ku}`. `covp{ky,ku}` is a 3-D array of dimension 2-by-2-by-Np, where `Np` is the length of `p{ky,ku}`, so that the `(1,1)` element is the variance of the real part, the `(2,2)` element is the variance of the imaginary part, and the `(1,2)` and `(2,1)` elements contain the covariance between the real and imaginary parts.

Covariance of zeros, returned as a cell array such that `covk{ky,ku}` contains the covariance information about the zeros in the vector `k{ky,ku}`. `covk{ky,ku}` is a 3-D array of dimension 2-by-2-by-Nk, where `Nk` is the length of `k{ky,ku}`, so that the `(1,1)` element is the variance of the real part, the `(2,2)` element is the variance of the imaginary part, and the `(1,2)` and `(2,1)` elements contain the covariance between the real and imaginary parts.

## Version History

Introduced before R2006a