No worries, glad I could answer your question.

On Wed, Dec 10, 2014 at 4:20 PM, Tudor Berariu <[email protected]>
wrote:

> Thank you for the answer! I'm sorry about cross-posting. It won't happen
> again!
>
> On Wednesday, December 10, 2014 11:08:53 PM UTC+2, Stefan Karpinski wrote:
>>
>> please don't cross-post questions in multiple places – it's the same
>> people reading and answering in both places: http://stackoverflow.
>> com/questions/27410076/multiple-assignment-in-multidimensional-array
>>
>> On Wed, Dec 10, 2014 at 4:06 PM, Stefan Karpinski <[email protected]>
>> wrote:
>>
>>> The classic vectorized Matlab approach is to use sub2ind:
>>>
>>> julia> X[sub2ind(size(X), ind[:,1], ind[:,2])] = 2
>>> 2
>>>
>>> julia> X
>>> 4x4 Array{Float64,2}:
>>>  2.0  0.0  0.0  0.0
>>>  0.0  2.0  0.0  0.0
>>>  0.0  0.0  2.0  0.0
>>>  0.0  0.0  0.0  0.0
>>>
>>>
>>> Of course, in Julia you also have the option of just using a for loop:
>>>
>>> for i = 1:size(ind,1)
>>>     X[ind[i,1],ind[i,2]] = 2
>>> end
>>>
>>>
>>> This is more efficient and arguably clearer.
>>>
>>> On Wed, Dec 10, 2014 at 3:45 PM, Tudor Berariu <[email protected]>
>>> wrote:
>>>
>>>> Hello!
>>>>
>>>> I have a 4x4 array of zeros.
>>>>
>>>> julia> X = zeros(4,4)
>>>> 4x4 Array{Float64,2}:
>>>>  0.0  0.0  0.0  0.0
>>>>  0.0  0.0  0.0  0.0
>>>>  0.0  0.0  0.0  0.0
>>>>  0.0  0.0  0.0  0.0
>>>>
>>>> I have an 2xN array containing indices of elements in X that I want to
>>>> assign a new value.
>>>>
>>>> julia> ind = [1 1; 2 2; 3 3]
>>>> 3x2 Array{Int64,2}:
>>>>  1  1
>>>>  2  2
>>>>  3  3
>>>>
>>>> What is the simplest way to assign a value to all elements in X whose
>>>> indices are rows in ind? (something like X[ind] = 2.0).
>>>>
>>>> julia> X
>>>>  2.0  0.0  0.0  0.0
>>>>  0.0  2.0  0.0  0.0
>>>>  0.0  0.0  2.0  0.0
>>>>  0.0  0.0  0.0  0.0
>>>>
>>>>
>>>
>>

Reply via email to