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.
>>
>