Programmer Guide/Command Reference/EVAL/vsubc: Difference between revisions

From STX Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 2: Line 2:
{{DISPLAYTITLE:{{SUBPAGENAME}}}}
{{DISPLAYTITLE:{{SUBPAGENAME}}}}
Extract rows from a vector or matrix.
Extract rows from a vector or matrix.
;Usage: '''<code>vsubc(<var>x</var> , <var>c</var> , <var>v</var> {, <var>y</var> }})   ''c'' = 0, 1, 4 or 5</code>'''
;Usage: '''<code>vsubc(<var>x</var> , <var>c</var> , <var>v</var> {, <var>y</var> }})</code>''' with ''c'' = 0, 1, 4 or 5</code>
::'''<code>vsubc(<var>x</var> , 2 , <var>v<sub>1</sub></var>, <var>vmax</var> {, <var>y</var> }})</code>'''
::'''<code>vsubc(<var>x</var> , 2 , <var>v<sub>1</sub></var>, <var>v<sub>1</sub></var> {, <var>y</var> }})</code>''' with ''c'' = 2, 3, 6 or 7
::'''<code>vsubc(<var>x</var> , 3 , <var>vmin</var>, <var>vmax</var> {, <var>y</var> }})</code>'''
:;<var>x</var>: condition vector (and source vector if argument ''y'' is not supplied); must be a vector!
:;<var>x</var>: condition vector (and source vector if argument ''y'' is not supplied); must be a vector!
:;<var>vmin</var>: lower boundary; must be a scalar or a vector with the same length as ''x''
:;<var>v, v<sub>1</sub>, v<sub>2</sub></var>: lower and/or upper boundary; must be a scalar or a vector with the same length as ''x''
:;<var>vmax</var>: upper boundary; must be a scalar or a vector with the same length as ''x''
:;<var>vmax</var>: upper boundary; must be a scalar or a vector with the same length as ''x''
:;<var>y</var>: optional source data; must be a vector or matrix with the same number of rows as ''x''
:;<var>y</var>: optional source data; must be a vector or matrix with the same number of rows as ''x''

Revision as of 11:36, 6 April 2011


Extract rows from a vector or matrix.

Usage
vsubc(x , c , v {, y }}) with c = 0, 1, 4 or 5
vsubc(x , 2 , v1, v1 {, 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
vmax
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 3 and defines the condition used for the selection of the source rows.
value of c row i is selected if ...
0 x[i] < vmin
1 x[i] > vmax
2 vmin < x[i] < vmax
3 x[i] < vmin or x[i] > vmax
4 x[i] <= vmin
5 x[i] >= vmax
6 vmin <= x[i] <= vmax
7 x[i] <= vmin or x[i] >= vmax
If a boundary vmin/vmax is a vector, the i-th element of the vectors x and vmin/vmax are compared, otherwise the element x[i] is compared with the number vmin/vmax. The function failes, if no row is selected.
See also
vsubn, select, vv

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 }

<function list>

Navigation menu

Personal tools