Programmer Guide/Command Reference/EVAL/vsubn: Difference between revisions
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
No edit summary |
No edit summary |
||
(5 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:{{SUBPAGENAME}}}} | {{DISPLAYTITLE:{{SUBPAGENAME}}}} | ||
Extract rows from a vector or matrix. | Extract rows from a vector or matrix. | ||
;Usage: | ;Usage: <code>vsubn(<var>x</var> {, <var>o</var> {, <var>n</var>}})</code> | ||
:;<var>x</var>: source vector or matrix | :;<var>x</var>: source vector or matrix | ||
:;<var>o</var>: offset, 0 | :;<var>o</var>: offset, 0 ≤ ''o'' < <code>nrow(''x'')</code> (default=0) | ||
:;<var>n</var>: length, ''n'' > 0 and ''o''+''n'' | :;<var>n</var>: length, ''n'' > 0 and ''o''+''n'' ≤ <code>nrow(''x'')</code> (default=<code>nrow(''x'')-''o''</code>) | ||
;Result: A numerical object with <code>ncol(''x'')</code> columns and ''n'' rows, consisting of the rows ''o'' to ''o''+''n''-1 of the argument ''x''. | ;Result: A numerical object with <code>ncol(''x'')</code> columns and ''n'' rows, consisting of the rows ''o'' to ''o''+''n''-1 of the argument ''x''. | ||
;See also: [[ | ;See also: [[../vsubc|vsubc]], [[../select|select]], [[../vvset|vv]] | ||
[[../#Functions|<function list>]] | |||
Example: | Example: | ||
<pre> | |||
#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,*] | |||
</pre> | |||
Use the [http://en.wikipedia.org/wiki/Trapezoidal_rule trapezoidal rule] to approximate technique definite integral of a function. | Use the [http://en.wikipedia.org/wiki/Trapezoidal_rule trapezoidal rule] to approximate technique definite integral of a function. | ||
<pre> | <pre> | ||
// The function y=f(x) is given by the points y[i]=f(x[i]). | // The function y=f(x) is given by the points y[i]=f(x[i]). | ||
// Approximate the definite integral of the function: | // Approximate the definite integral of the function: | ||
#n := int $#y[!nrow]-1 | #n := int $#y[!nrow]-1 | ||
#a = eval (vsubn($#x,1,$#n)-vsubn($#x,0,$#n) * (vsubn($#y,1,$#n) + vsubn($#y, | #a = eval (vsubn($#x,1,$#n)-vsubn($#x,0,$#n)) * (vsubn($#y,1,$#n)+vsubn($#y,0,$#n)) / 2 | ||
</pre> | </pre> | ||
Latest revision as of 12:12, 21 April 2011
Extract rows from a vector or matrix.
- Usage
vsubn(x {, o {, n}})
- x
- source vector or matrix
- o
- offset, 0 ≤ o <
nrow(x)
(default=0) - n
- length, n > 0 and o+n ≤
nrow(x)
(default=nrow(x)-o
)
- Result
- A numerical object with
ncol(x)
columns and n rows, consisting of the rows o to o+n-1 of the argument x. - See also
- vsubc, 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,*]
Use the trapezoidal rule to approximate technique definite integral of a function.
// The function y=f(x) is given by the points y[i]=f(x[i]). // Approximate the definite integral of the function: #n := int $#y[!nrow]-1 #a = eval (vsubn($#x,1,$#n)-vsubn($#x,0,$#n)) * (vsubn($#y,1,$#n)+vsubn($#y,0,$#n)) / 2