If unshuff is an existing structure array, then
unshuff.trial
would expand to multiple locations as if you had written
[unshuff(1).trial, unshuff(2).trial, ... unshuff(end).trial] = shuff;
but your shuff is only a single output.
If you want to assign the same value to each of the locations, use
[unshuff.trial] = deal(shuff);
If you want to assign one of the values in shuff to each of the outputs then:
shuff = num2cell(randperm(length(unshuff)));
[unshuff.trial] = shuff{:}; %or deal(shuff{:})
