Programmer Guide/Command Reference/EVAL/select: Difference between revisions
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
:;<var>x</var>: condition vector; must be a vector! | :;<var>x</var>: condition vector; must be a vector! | ||
:;<var>t</var>: threshold | :;<var>t</var>: threshold | ||
:;<var>yl</var>: result if <code>''x''[''i]'' <= ''t''{[''i'']} | :;<var>yl</var>: result if <code>''x''[''i]'' <= ''t''{[''i'']}</code> | ||
:;<var>yh</var>: result if <code>''x''[''i]'' > ''t''{[''i'']} | :;<var>yh</var>: result if <code>''x''[''i]'' > ''t''{[''i'']}</code> | ||
::''t'', ''yl'' and ''yh'' must be numbers or vectors with the same length as ''x'' | :Note: ''t'', ''yl'' and ''yh'' must be numbers or vectors with the same length as ''x'' | ||
;Result: A vector ''r'' with ... | ;Result: A vector ''r'' with ... | ||
::<code>''r''[i] = ''yl''{[''i'']}</code> if ''x''[''i]'' <= ''t''{[''i'']} and | ::<code>''r''[i] = ''yl''{[''i'']}</code> if ''x''[''i]'' <= ''t''{[''i'']}</code> and | ||
::<code>''r''[i] = ''yh''{[''i'']}</code> if ''x''[''i]'' > ''t''{[''i'']} | ::<code>''r''[i] = ''yh''{[''i'']}</code> if ''x''[''i]'' > ''t''{[''i'']}</code> | ||
:The result r has the same length as ''x''. | :The result r has the same length as ''x''. | ||
Line 16: | Line 16: | ||
Example: | Example: | ||
<pre> | <pre> | ||
#a := eval vv(1,2,3,4,5) | #a := eval vv(1,2,3,4,5,4,3,2,1) | ||
#b := eval | 0 1 2 3 4 5 6 7 8 | ||
#c := | #b := eval fill(9,0,1) | ||
// -> | #c := eval select($#a,3,0,$#a) | ||
#d := eval | // -> $#c = { 0 , 0 , 0 , 4 , 5 , 4 , 0 , 0 , 0 } | ||
// -> | #d := eval select($#a, $#b , $#b , $#a) | ||
#e := eval | // -> $#d = { 1 , 2 , 3 , 4 , 5 , 5 , 6 , 7 , 8 } | ||
// -> | #e := eval select($#b%2, 0, $#b, -1) | ||
// -> $#d = { 0 , -1 , 2 , -1 , 4 , -1 , 6 , -1 , 8 } | |||
</pre> | </pre> | ||
[[Programmer_Guide/Command_Reference/EVAL#Functions|<function list>]] | [[Programmer_Guide/Command_Reference/EVAL#Functions|<function list>]] |
Revision as of 12:22, 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]}
- Note: 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]} andr[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,4,3,2,1) 0 1 2 3 4 5 6 7 8 #b := eval fill(9,0,1) #c := eval select($#a,3,0,$#a) // -> $#c = { 0 , 0 , 0 , 4 , 5 , 4 , 0 , 0 , 0 } #d := eval select($#a, $#b , $#b , $#a) // -> $#d = { 1 , 2 , 3 , 4 , 5 , 5 , 6 , 7 , 8 } #e := eval select($#b%2, 0, $#b, -1) // -> $#d = { 0 , -1 , 2 , -1 , 4 , -1 , 6 , -1 , 8 }