But what about for non-integer values? In one of your examples, you had t set to
1.26 3.78 6.3 10.08 11.34 12.6 13.86 15.12 16.38 17.64 -- Raul On Thu, Nov 22, 2012 at 11:21 AM, Alexander Epifanov <[email protected]> wrote: > For more than 3, then every missed second should be filled with the last > number. > > t=: 1 2 7 8 > v=: 10 20 90 100 > > newv: 10 20 [20 20 20 20] 90 10 > > On Thu, Nov 22, 2012 at 12:34 AM, Raul Miller <[email protected]> wrote: >> Yes? >> >> I was asking what the behavior should be for cases when <: 2 -~/\ t >> contained values other than 0, 1, 2 or 3. >> >> Thanks, >> >> -- >> Raul >> >> On Tue, Nov 20, 2012 at 4:07 PM, Alexander Epifanov <[email protected]> >> wrote: >>> t,:v >>> 1.26 3.78 6.3 10.08 11.34 12.6 13.86 15.12 16.38 17.64 >>> 0 20 40 60 80 100 525 321 248 259 >>> >>> wat >>> 4 : 0 >>> ctl=. 0,~ _1+(}.-}:) x >>> avg=. 0,~ 0.5 * (}.+}:) y >>> ins=. ctl #&.> (2 < ctl) {"_1 avg,.y >>> ;}:,y;"0 ins >>> ) >>> t wat v >>> |domain error: wat >>> | ins=.ctl #&.>(2<ctl){"_1 avg,.y >>> >>> On Tue, Nov 20, 2012 at 9:06 PM, Raul Miller <[email protected]> wrote: >>>> On Mon, Nov 19, 2012 at 5:38 PM, Alexander Epifanov <[email protected]> >>>> wrote: >>>>> Unfortunately cannot resolve problem, which could be easy resolved with >>>>> loop: >>>>> t=: 1 3 6 10 11 12 >>>>> v=: 0 20 40 60 80 100 >>>>> >>>>> i=: _1+(}.-}:) t >>>>> i NB. its just distance between numbers >>>>> 1 2 3 0 0 0 >>>>> >>>>> And now the main problem for me, because I have to modify v array: >>>>> if i = 0 then nothing >>>>> if i = 1 or i = 2 then insert average value (for 1) and two values for 2 >>>>> if i = 3 then insert previous value >>>> >>>> This specification seems odd. What if i contains some other value? I >>>> am going to assume that values greater than 3 will be given the same >>>> treatment as values where you need 3 copies, and that negative values >>>> will not appear in i >>>> >>>>> so, we have to fill missed values in t and v: >>>>> t=: 1 3 6 10 11 12 >>>>> v=: 0 20 40 60 80 100 >>>>> >>>>> should be: >>>>> t2: 1 2 3 4 5 6 7 8 9 10 11 12 (ok, its just full index now) >>>>> v2: 0 10 20 30 30 40 40 40 40 60 80 100 >>>>> ^ inserted by condition: 10; 30 30; 40 40 40 >>>>> >>>>> Could you please help how to resolve it better? I suppose I can rotate >>>>> |:t,:v and then fold it one-by-one, but I think it is not good >>>>> solution. >>>> >>>> I am not sure if this is better, but it meets the specifications you >>>> have provided: >>>> >>>> wat=: 4 :0 >>>> ctl=. 0,~ _1+(}.-}:) x >>>> avg=. 0,~ 0.5 * (}.+}:) y >>>> ins=. ctl #&.> (2 < ctl) {"_1 avg,.y >>>> ;}:,y;"0 ins >>>> ) >>>> >>>> t wat v >>>> 0 10 20 30 30 40 40 40 40 60 80 100 >>>> >>>> -- >>>> Raul >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>> >>> >>> >>> -- >>> Regards, >>> Alexander. >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > > > > -- > Regards, > Alexander. > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
