# vsubn

Extract rows from a vector or matrix.

Usage
`vsubn(x {, o {, n}})`
x
source vector or matrix
o
offset, 0 ≤ o < `nrow(x)` (default=0)
n
length, n > 0 and o+n`nrow(x)` (default=`nrow(x)-o`)
Result
A numerical object with `ncol(x)` columns and n rows, consisting of the rows o to o+n-1 of the argument x.
vsubc, select, vv

Example:

```#a := eval vv(1,2,3,4,5)
#b := eval vmcol(\$#a, vv(5,4,3,2,1))
#c := vsubn(\$#a,3)
// -> vector: \$#c = { 4 , 5 }
#d := eval vsubn(\$#b, 1 , 3)
// -> matrix: \$#d[*,0] = { 2 , 3 , 4 },  \$#d[*,1] = { 4 , 3 , 2 }
#e := eval vsubn(\$#a, 2, 1)
// -> scalar: \$#e = 2, this is equivalent to \$#a[2]
#f := eval vsubn(\$#b, 2, 1)
// -> vector (!!): \$#f = { 3 , 3 }, this is equivalent to \$#b[2,*]
```

Use the trapezoidal rule to approximate technique definite integral of a function.

```// The function y=f(x) is given by the points y[i]=f(x[i]).
// Approximate the definite integral of the function:
#n := int \$#y[!nrow]-1
#a = eval (vsubn(\$#x,1,\$#n)-vsubn(\$#x,0,\$#n)) * (vsubn(\$#y,1,\$#n)+vsubn(\$#y,0,\$#n)) / 2
```