Yeah, it’s the combination of (a) the use of i and i+1 indexing with (b) the 
use of a loop that goes from i = 1 to i = length(outputarray).

 — John

On Jul 30, 2014, at 2:44 PM, [email protected] wrote:

> To correct the bug, is it this?
> 
> if outputarray[i] < 0 && outputarray[i+1] >= 0
>             count += 1
>         end
> 
> Factoring in that Julia begins indexing from 1. 
> 
> On Wednesday, July 30, 2014 4:41:43 PM UTC-4, John Myles White wrote:
> This pseudocode almost works. Just replace Int64[1:len(outputarray)] with 
> 1:length(outputarray).
> 
> There’s also a bug in your core logic, but I’ll leave fixing that as an 
> exercise to the reader.
> 
>  — John
> 
> On Jul 30, 2014, at 1:03 PM, [email protected] wrote:
> 
>> 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 
> 

Reply via email to