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

From STX Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
{{DISPLAYTITLE:{{SUBPAGENAME}}}}
{{DISPLAYTITLE:{{SUBPAGENAME}}}}
=====vsubc=====
Conditional extraction of elements from the vector <var>x</var>.
=====Usage:=====
<code>vsubc(<var>x1</var>,<var>c</var>,<var>s1</var>,<var>x2</var>)</code>
<code>vsubc(<var>x1</var>,<var>c</var>,<var>s1</var>,<var>s2</var>,<var>x2</var>)</code>
=====Parameters:=====
;<var>x1</var>
:The input vector.
;<var>c</var>
:The condition. The following values are supported:
:<code>0</code> - select all <var>x</var>[i] where <var>x</var>[i] < <var>s1</var>
:1 - select all <var>x</var>[i] where <var>x</var>[i] > <var>s1</var>
:<code>2</code> - select all <var>x</var>[i] where <var>s1</var> < <var>x</var>[i] < <var>s2</var>
;<var>s1</var>
:A real number. See <var>c</var> for details.
;<var>s2</var>
:A real number (only used if <var>c</var><code>==2</code>). See <var>c</var> for details.
;<var>x2</var>
:<var>x2</var> is optional. If specified, the elements in <var>x2</var> are extracted based on the selected values in <var>x1</var>. <var>x2</var> must be a vector with exactly the same number of rows as <var>x1</var>.
=====Result:=====
The result is a scalar or a vector with the selected elements from <var>x1</var> (or <var>x2</var> - see <var>x2</var> for details).
{{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 with <code>nrow(''x'')</code> columns and ''n'' rows, consisting of the rows ''o'' to ''o''+''n''-1 of the argument ''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.
;Description: The 2nd argument ''c'' (a number in the range 0..3) defines the condition used for the selection of the source rows.
::;''c''=0: select all rows ''i'' where <code>''x''[''i''] < ''vmin''</code>
::* 2nd argument is '''0''': select all rows ''i'' of the source vector 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
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 := 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,*]

<function list>

Navigation menu

Personal tools