Good catch Kevin. Broadcasting works. Cheers
julia> function f1(n)
A = rand(n,n,3)
S = rand(n,n)
A ./ S
end
f1 (generic function with 1 method)
julia> function f2(n)
A = rand(n,n,3);
S = rand(n,n);
for k = 1:size(A,3)
A[:,:,k] = A[:,:,k] ./ S;
end
return A
end
f2 (generic function with 1 method)
julia> begin
srand(1)
x = f1(10)
srand(1)
y = f2(10)
x == y
end
true
On Wednesday, August 27, 2014 9:57:40 AM UTC-7, Kevin Squire wrote:
Good thought, Ethan! In fact, if you do it that way, broadcasting should
> work--just divide by S. (I'm not at a computer, so please test.)
>
> Cheers,
> Kevin
>
> On Wednesday, August 27, 2014, Ethan Anderes <[email protected]
> <javascript:>> wrote:
>
>> You could also re-arrange the indices and move the for loop to the last
>> index
>>
>> function f(n)
>> A = rand(n, n, 3)
>> S = rand(n, n)
>> for k = 1:size(A, 3)
>> A[:,:,k] = A[:,:,k] ./ S
>> end
>> return A
>> end
>>
>> This works since A[:,:,k] is a 2-d array but A[k,:,:] is a 3-d array.
>>
>>
>