Programmer Guide/Command Reference/EVAL/select: Difference between revisions
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
m (1 revision: Initial import) |
No edit summary |
||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:{{SUBPAGENAME}}}} | {{DISPLAYTITLE:{{SUBPAGENAME}}}} | ||
Conditional merge of selected elements of two vectors and/or scalars. | |||
;Usage: '''<code>select(<var>x</var>, <var>t</var>, <var>yl</var>, <var>yh</var>)</code>''' | |||
:;<var>x</var>: condition vector; must be a vector! | |||
:;<var>t</var>: threshold | |||
:;<var>yl</var>: result if <code>''x''[''i]'' <= ''t''{[''i'']} | |||
:;<var>yh</var>: result if <code>''x''[''i]'' > ''t''{[''i'']} | |||
::''t'', ''yl'' and ''yh'' must be numbers or vectors with the same length as ''x'' | |||
;Result: A vector ''r'' with ... | |||
::<code>''r''[i] = ''yl''{[''i'']}</code> if ''x''[''i]'' <= ''t''{[''i'']} and | |||
::<code>''r''[i] = ''yh''{[''i'']}</code> if ''x''[''i]'' > ''t''{[''i'']} | |||
:The result r has the same length as ''x''. | |||
;See also: [[Programmer_Guide/Command_Reference/EVAL/vsubn|vsubn]], [[Programmer_Guide/Command_Reference/EVAL/select|vsubc]], [[Programmer_Guide/Command_Reference/EVAL/vvset|vv]] | |||
Example: | |||
<pre> | |||
#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 } | |||
</pre> | |||
[[Programmer_Guide/Command_Reference/EVAL#Functions|<function list>]] | |||
| | |||
Revision as of 12:11, 6 April 2011
Conditional merge of selected elements of two vectors and/or scalars.
- Usage
select(x, t, yl, yh)
- x
- condition vector; must be a vector!
- t
- threshold
- yl
- result if
x[i] <= t{[i]}
- yh
- result if
x[i] > t{[i]}
- t, yl and yh must be numbers or vectors with the same length as x
- Result
- A vector r with ...
r[i] = yl{[i]}
if x[i] <= t{[i]} and
r[i] = yh{[i]}
if x[i] > t{[i]}
- The result r has the same length as x.
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 }