Convert breaks with multiplicities into knots

`[knots,index] = brk2knt(breaks,mults) `

`[knots,index] = brk2knt(breaks,mults) `

returns
the sequence `knots`

that is the sequence `breaks`

but
with `breaks(i)`

occurring `mults(i)`

times,
all `i`

. In particular, `breaks(i)`

will
not appear unless `mults(i)>0`

. If, as one would
expect, `breaks`

is a strictly increasing sequence,
then `knots`

contains each `breaks(i)`

exactly `mults(i)`

times.

If `mults`

does not have exactly as many entries
as does `breaks`

, then all `mults(i)`

are
set equal to `mults(1)`

.

If, as one would expect, `breaks`

is strictly
increasing and all multiplicities are positive, then, for each `i`

, `index(i)`

is
the first place in `knots`

at which `breaks(i)`

appears.

The statements

t = [1 1 2 2 2 3 4 5 5]; [xi,m] = knt2brk(t); tt = brk2knt(xi,m)

give `[1 2 3 4 5] `

for `xi`

, ```
[2
3 1 1 2]
```

for `m`

, and, finally, `t`

for `tt`

.

Was this topic helpful?