How to fill a vector from 0 to an incoming number?
From ftm
Q: How can I fill a vector from 0 to an incoming number?
A: The ramp or rampinc methods of fmat or fvec are made for this:
($myvec ramp 0 $1)
fills the existing elements to ($1 - 1)
($myvec rampinc 0 $1)
fills to $1. The fmat or fvec must have the correct size already. (Change with rows $1.)
Exercise: Using the expr class:
Having first resized the vector to N+1, where N is incoming number, declare the expression rampexpr in an ftm.object like
[expr '($idx)' | rampexpr]
Then it's:
($myvec fill $rampexpr)
If you have a vector whose size you want to keep fixed, so that you go, say, 0-13 in 10 steps, it's a bit more complex with expr, but only a bit:
To go 0 to N inclusive (like rampinc):
[expr '($idx * ($1 / (($self size) - 1) ) )' | rampexpr2]
To go 0 to N-1:
[expr '($idx * ($1 / ($self size) ) )' | rampexpr3]
($myvec fill $rampexpr2 $1)
Assuming $1 is your incoming value.
(Owen Green, Diemo Schwarz)
Categories: FAQ | Expr Class | Fmat Class | Fvec Class