Assinging String Value to Structure

11 ビュー (過去 30 日間)
Nick G
Nick G 2015 年 8 月 31 日
編集済み: Cedric 2015 年 8 月 31 日
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 日
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 件)

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by