Single & is the bitwise AND function; double && is a short-circuiting control flow operator (both similar to C).
On Thursday, July 31, 2014, <[email protected]> wrote: > Also Gunnar, I see that you have a single ampersand -- I can't seem to > find in the documentation yet when to use the single and when to use the > double -- I only see usage of the double ampersand. > > On Thursday, July 31, 2014 2:45:25 AM UTC-4, Gunnar Farnebäck wrote: >> >> This is not the most efficient way, neither the clearest, but it's >> compact. In a language like Matlab it would be the preferred approach. >> >> sum((outputarray[1:end-1] .< 0) & (outputarray[2:end] .>= 0)) >> >> Den onsdagen den 30:e juli 2014 kl. 22:03:32 UTC+2 skrev >> [email protected]: >>> >>> Hi guys, >>> >>> I asked this in a previous thread, but because that diverged off-topic >>> from my existing question, I decided to create a new thread. >>> >>> Anyhow, say I have an array >>> >>> outputarray = Float64[-1.23423,-3.23423,-2.34234,-2.12342,1.23234,2. >>> 23423,-2.23432,5.2341,0.01111,1.23423] >>> >>> This array lists the output of some function. I want to count the number >>> of times that the function passes by or equals 0 while emerging from a >>> negative f(x). >>> >>> In pseudocode, I want to do: >>> >>> function counter(outputarray) >>> count = 0 >>> for i in Int64[1:len(outputarray)] >>> if outputarray[i] >= 0 && outputarray[i-1] < 0 >>> count += 1 >>> end >>> end >>> return count >>> end >>> >>> What would be the most efficient way of doing this in Julia? >>> >>> Thanks, >>> Wally >>> >>
