Ups, sorry, looks like old version of the "norm" function was called
with new s0`s12`s3
mki=: 3&<.@(1&{)
s0=: 0#0&[
s12=: ((1&{))#%&2@({.+{:)
s3=: ((1&{))#{.
f=: ((1}.]),~[,s0`s12`s12`s3@.(mki)@({:@[ , 2&{.@]))
norm=: (}.@(f/@,.~0,(<:@(}.-}:)@:<.)))~
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
t norm v
0 10 20 30 30 40 40 40 40 60 80 100 525 423 321 248 259
On Mon, Nov 26, 2012 at 12:34 AM, Raul Miller <[email protected]> wrote:
>
> 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
--
Regards,
Alexander.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm