Ups, it's nicer to use indmax and indmin, sorry

function change_min_max!{T}(m::Array{T,2})
    for row = 1:size(m, 1)
        m[row, indmax(m[row, :])] = one(T)
        m[row, indmin(m[row, :])] = zero(T)
    end
end


El martes, 6 de octubre de 2015, 21:29:02 (UTC-5), Mauricio Esteban Cuak 
escribió:
>
> How about this:
>
> function change_min_max!{T}(m::Array{T,2})
>     for row = 1:size(m, 1)
>         m[row, findmax(m[row, :])[2]] = one(T)
>         m[row, findmin(m[row, :])[2]] = zero(T)
>     end
> end
>
>
>
> Two caveats. First, I'm guessing this won't be that fast, because it's 
> traversing through rows instead of columns, but maybe you're not worried 
> about speed.
> Second, this doesn't handle ties (you didn't say how you wanted to handle 
> them)
>
>
> El martes, 6 de octubre de 2015, 15:32:15 (UTC-5), Steven G. Johnson 
> escribió:
>>
>> On Tuesday, October 6, 2015 at 4:27:40 PM UTC-4, Rosangela Oliveira wrote:
>>>
>>> The idea is to read each matrix nxm and  to replace the max value=1 and 
>>>  min value=0 in case when max and min its the same value, the first receive 
>>> 1 and the second recive 0.
>>>
>>  
>> Just write loops.  It will be way less convoluted, and way faster, than 
>> any construction using find etc.
>>
>> With Matlab and Python, every programming problem is an exercise in 
>> mining the standard library for (you hope) just the right functions for 
>> your problem, because any code that you write yourself will be slow.  Julia 
>> doesn't have that problem, and often the most straightforward code is also 
>> the best code.
>>
>

Reply via email to