# COLEXTRACT

## Purpose:

Extracts a portion of each column of a
table.

## Syntax:

COLEXTRACT(a, start,
length, offset)

a |
- |
A table. |

start |
- |
A series. A list of integer starting points. |

length |
- |
A series. A list of integers specifying the
number of points to be extracted from each column. -1 implies extract
to the end of the column |

offset |
- |
Optional. A series. A list of real values
specifying the X offset of the resulting columns. Defaults
to the X value of the starting points. |

## Returns:

A table.

## Example:

a = {{1, 2, 3},

{4,
5, 6},

{7,
8, 9},

{3,
4, 5}}

b = colextract(a, {1, 2, 3}, {3, 2, -1})

b == {{1, 5, 9},

{4,
8, 5},

{7}}

Here COLEXTRACT implies the following:

Starting at the first point, extract 3 points
from column 1.

Starting at the second point, extract 2 points
from column 2.

Starting at the third point, extract to the
end of column 3.

## Example:

W1: integ(gnorm(100,1))

W2: integ(gnorm(200, .1))

W3: ravel(W1, W2)

W4: colmaxidx(W3)’

W5: colextract(W3, W4-10, ones(numcols(W3),
1)*20+1)

W6: W1;overp(col(w5, 1), lred)

W7: W2;overp(col(W5, 2), lred)

W6 and W7 highlight in light red a 20
point window around the maximum values of the original series in W1 and
W2.

## Remarks:

If **start**
is negative, zeros are prepended to the result. If the number of points
to extract is greater than the series or table length, the result is padded
with zeros.

## See Also:

CONCAT

CUT

EXTRACT

EXTRACTWIN

RAVEL

SEREXTRACT

XEXTRACT