If you floor the left argument to wat, that gives me the result you
are describing, but my result differs from your result.

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
   t norm v
0 10 20 30 30 40 50 50 50 60 80 100 525 423 321 248 259

That sequence 50 50 50 does not match your stated rules which declare
that we only average in the case where there are two missing values.

-- 
Raul

On Sun, Nov 25, 2012 at 6:14 PM, Alexander Epifanov <[email protected]> wrote:
> I just froor them, because I need to insert for every second.
>
> for the moment I wrote this, but I suppose that foldr is not the best
> and fast solution:
>
> mki=: 3&<.@(1&{)
> s0=: 0#0&[
> s12=: ((1&{))#%&2@({.+{:)
> s3=: ((1&{))#{.
> f=: ((1}.]),~[,s0`s12`s12`s3@.(mki)@({:@[ , 2&{.@]))
> norm=: (}.@(f/@,.~0,(<:@(}.-}:)@:<.)))~
>
>
> On Sun, Nov 25, 2012 at 10:30 PM, Raul Miller <[email protected]> wrote:
>> 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
>
>
>
> --
> 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

Reply via email to