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 1: | Line 1: | ||
{{DISPLAYTITLE:{{SUBPAGENAME}}}} | {{DISPLAYTITLE:{{SUBPAGENAME}}}} | ||
{{DISPLAYTITLE:{{SUBPAGENAME}}}} | {{DISPLAYTITLE:{{SUBPAGENAME}}}} | ||
Extract rows from a vector or matrix. | Extract rows from a vector or matrix. | ||
| Line 52: | Line 10: | ||
:;<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'' | ||
;Result: A numerical object | ;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. | ||
::;''c''=0: select all rows ''i'' where <code>''x''[''i''] < ''vmin''</code> | |||
:: | ::;''c''=1: select all rows ''i'' where <code>''x''[''i''] > ''vmax''</code> | ||
::;''c''=2: select all rows ''i'' where <code>''vmin'' < '' ''x''[''i''] < ''vmax''</code> | |||
::;''c''=3: select all rows ''i'' where <code>''x''[i] <= ''vmin'' or ''x''[''i''] >= ''vmax''</code> | |||
;See also: [[Programmer_Guide/Command_Reference/EVAL/vsubn|vsubn]], [[Programmer_Guide/Command_Reference/EVAL/select|select]], | ;See also: [[Programmer_Guide/Command_Reference/EVAL/vsubn|vsubn]], [[Programmer_Guide/Command_Reference/EVAL/select|select]], | ||
Revision as of 09:54, 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.
- c=0
- select all rows i where
x[i] < vmin - c=1
- select all rows i where
x[i] > vmax - c=2
- select all rows i where
vmin < x[i] < vmax - c=3
- select all rows i where
x[i] <= vmin or x[i] >= vmax
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,*]