I'm having trouble assigning a string value ('practice') to every level of a structure called unshuff.
These work:
unshuff(1,1).myfield = 'practice';
unshuff(1,2).myfield = 'practice';
But this does not work:
unshuff(1,:).myfield = 'practice';
I get an error message that says:
Insufficient outputs from right hand side to satisfy comma separated list expansion on left hand side. Missing [] are the most likely cause.
How can one (efficiently) assign a string value to every level of a given field in a structure?

 採用された回答

Cedric
Cedric 2015 年 8 月 31 日

0 投票

Here is one way:
[unshuff(1,:).myfield] = deal( 'new practice' ) ;

2 件のコメント

Nick G
Nick G 2015 年 8 月 31 日
Thanks.
Cedric
Cedric 2015 年 8 月 31 日
編集済み: Cedric 2015 年 8 月 31 日
You're welcome. Here is another way that you could profile if relevant:
newVals = repmat( {'new practice'}, 1, size( unshuff, 2 )) ;
[unshuff(1,:).myfield] = newVals{:} ;
To understand what we are doing in both cases, you have to understand Comma Separated Lists (CSL) in MATLAB.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Characters and Strings についてさらに検索

タグ

質問済み:

2015 年 8 月 31 日

編集済み:

2015 年 8 月 31 日

Community Treasure Hunt

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

Start Hunting!

Translated by