Assigning an Array to Structure Field

17 次查看(过去 30 天)
I'm having trouble assigning an array to a structure field.
shuff = randperm(length(unshuff));
[unshuff.trial] = shuff;
I get the following error message:
Too many output arguments.
Any ideas?

回答(1 个)

Walter Roberson
Walter Roberson 2015-9-1
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{:})

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by