Re: [Bug-apl] How to zero every other 1 in a sequence
Hi, extending Kacper's idea, you could also try: (X/X)←∈(⍴¨X⊂X)⍴¨⊂1 0 It is a bit longer but may be faster because it avoids \. /// Jürgen On 03/20/2014 08:08 PM, Kacper Gutowski wrote: On 2014-03-21 00:23:41, Elias Mårtenson wrote: One of my experiments was very short, and tantalisingly close to correct: ≠\V Unfortunately, it's not quite right. Does anyone have an idea how to coerce that one into being right? I couldn't come up with anything better, but if you don't mind having a separate statement with assignment in place you could do something like: (V/V)←∊≠\¨V⊂V -k
Re: [Bug-apl] How to zero every other 1 in a sequence
Elias Mårtenson loke...@gmail.com wrote: Assume I have a binary sequence. Say, something like this: 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 Here, we can see a few sequences of consecutive ones. I want to zero out every second in each sequence. I.e, I'd like to get the following result: 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 Not sure if it is short enough, but this seems to work; however I suggest you check it carefully: V×2|+\1⌈(⍳⍴V)×2|⊤\2+V V ← 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 V×2|+\1⌈(⍳⍴V)×2|⊤\2+V 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 Regards, -- Thomas Baruchel
[Bug-apl] How to zero every other 1 in a sequence
I've been struggling with this one for days now, and I really need some advice. Assume I have a binary sequence. Say, something like this: 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 Here, we can see a few sequences of consecutive ones. I want to zero out every second in each sequence. I.e, I'd like to get the following result: 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 If there is a way to do this by starting with zero instead, that would work too: 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 What is the shortest way of achieving this? Regards, Elias