samer@0: % vecedit - Graphical editor for real-valued vector samer@0: % samer@0: % vecedit :: samer@0: % [[N]] ~'initial value of editable vector', samer@0: % options { samer@0: % fig :: handle/gcf ~'figure to use'; samer@0: % } samer@0: % -> arrow({},{[[N]]},vecedit_state) ~'arrow that generates vectors'. samer@0: % samer@0: % vecedit takes all options accepted by emousepos and plotter. samer@0: function o=vecedit(x0,varargin) samer@0: N=length(x0); x0=x0(:); samer@37: opts=options(varargin{:}); samer@0: o = emousepos(opts) * erate(loop(@edit,@(z)x0) * obs_with(plotter(opts)),{[2,1]}) * alatch(x0); samer@0: samer@0: function [f,g]=edit(m,f) samer@0: i=round(m(1)); samer@0: if i>=1 && i<=N, f(i)=m(2); end samer@0: g=f; samer@0: end samer@0: end