vsubc
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
Extract rows from a vector or matrix.
- Usage
vsubc(x, c, v {, y }})
with c = 0, 1, 4 or 5vsubc(x, c, v1, v2 {, y }})
with c = 2, 3, 6 or 7- x
- condition vector (and source vector if argument y is not supplied); must be a vector!
- v, v1, v2
- lower and/or upper boundary; must be a scalar or a vector with the same length as x
- y
- optional source data; must be a vector or matrix with the same number of rows as x
- Result
- A numerical object consisting of all selected rows of the source y (or x if y is not supplied). The 2nd argument c must be a number in the range 0 to 7 and defines the condition used for the selection of the source rows.
value of c row i is selected if ... 0 x[i] < v
1 x[i] > v
2 v1 < x[i] < v2
3 x[i] < v1 or x[i] > v2
4 x[i] <= v
5 x[i] >= v
6 v1 <= x[i] <= v2
7 x[i] <= v1 or x[i] >= v2
- If a boundary v is a vector, the i-th element of the vectors x and v are compared, otherwise the element x[i] is compared with the number v. The function failes, if no row is selected.
Example:
#a := eval vv(1,2,3,4,5) #b := eval vmcol($#a, vv(5,4,3,2,1)) #c := vsubc($#a,0,3) // -> vector: $#c = { 1 , 2 } #d := eval vsubc($#a,2,0,5,$#b) // -> matrix: $#d[*,0] = { 2 , 3 , 4 }, $#d[*,1] = { 4 , 3 , 2 } #e := eval vsubc($#a,7,2,4) // -> vector: $#e = { 1 , 2 , 4 , 5 }