Programmer Guide/Command Reference/EVAL/vsubc: Difference between revisions
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 12: | Line 12: | ||
;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. | ;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 ... | !value of ''c'' !!row ''i'' is selected if ... | ||
|- | |- | ||
| '''0''' || <code>''x''[''i''] < ''vmin''</code> | |'''0''' ||<code>''x''[''i''] < ''vmin''</code> | ||
|- | |- | ||
|'''1''' ||<code>''x''[''i''] > ''vmax''</code> | |||
|- | |||
|'''2''' ||<code>''vmin'' < '' ''x''[''i''] < ''vmax''</code> | |||
|- | |||
|'''3''' ||<code>''x''[i] < ''vmin'' or ''x''[''i''] > ''vmax''</code> | |||
|- | |||
|'''4''' ||<code>''x''[''i''] <= ''vmin''</code> | |||
|- | |||
|'''5''' ||<code>''x''[''i''] >= ''vmax''</code> | |||
|- | |||
|'''6''' ||<code>''vmin'' <= '' ''x''[''i''] <= ''vmax''</code> | |||
|- | |||
|'''7''' ||<code>''x''[i] <= ''vmin'' or ''x''[''i''] >= ''vmax''</code> | |||
|} | |} | ||
: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. | :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. | ||
Revision as of 11:21, 6 April 2011
Extract rows from a vector or matrix.
- Usage
vsubc(x , 0 , vmin {, y }})
vsubc(x , 1 , vmax {, y }})
vsubc(x , 2 , vmin, vmax {, y }})
vsubc(x , 3 , vmin, vmax {, y }})
- x
- condition vector (and source vector if argument y is not supplied); must be a vector!
- vmin
- lower 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.
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 }