A very hacky solution would be to take the array and turn it into a cell array, then use a comma-separated list to finally do the assignment. Assuming that obj is already declared, do something like this:
A = num2cell(arrayOfRadius);
[obj.Radius] = A{:};
num2cell converts the array into a cell array of individual elements and doing A{:} converts the cell array into a comma-separated list and we'll deal out each element into its respective slot in the structure. Doing obj.Radius unpacks each Radius field in your structure into a comma-separated list. Therefore the above code is equivalent to doing:
[obj(1).Radius, obj(2).Radius, ..., obj(N).radius] = A(1), A(2), ..., A(N)
N is the total number of elements in arrayOfRadius.
Reproducible example
>> clear
>> obj(4).Radius = 0;
>> disp([obj.Radius])
0
>> arrayOfRadius = [1 2 3 4];
>> A = num2cell(arrayOfRadius);
>> [obj.Radius] = A{:};
>> disp([obj.Radius])
1 2 3 4
My Two Cents...
FWIW, using the for loop approach is actually more readable. Doing this workaround really makes the code obfuscated... especially if you're only copying elements from an array to a structure. How many times is this copying going to be performed? If it's only once or a few times, stick with the for loop for readability.