Assigning an Array to Structure Field

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 日

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{:})

カテゴリ

ヘルプ センター および File ExchangeStructures についてさらに検索

質問済み:

2015 年 9 月 1 日

回答済み:

2015 年 9 月 1 日

Community Treasure Hunt

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

Start Hunting!

Translated by