dynamic structure reference gives error

I have s structure field named d.NL330260 and a temporary variable grade_n which is a 1x1 cell array containing 'NL330260'. I tried implementing the following:
grade_n = 'NL330260';
d.(grade_n)
but , I get this error message.
Argument to dynamic structure reference must evaluate to a valid field name.
What could be the problem??

 採用された回答

Steven Lord
Steven Lord 2016 年 10 月 5 日

1 投票

This is not the exact code you were using:
grade_n = 'NL330260';
d.(grade_n)
It was more like:
grade_n = {'NL330260'};
d.(grade_n)
When using dynamic field names, the dynamic field name must be a char row vector. You were passing in a scalar cell array with a char row vector inside the cell, but that's different. Using char as you did is one way to resolve the problem; another is to extract the char row vector from the cell.
grade_n = {'NL330260'};
d.(grade_n{1})

その他の回答 (1 件)

na ja
na ja 2016 年 10 月 5 日

0 投票

OK, solved it. I put it in this way:
grade_n = 'NL330260';
d.((char(grade_n) ))

2 件のコメント

Jan
Jan 2016 年 10 月 5 日
Use Steven's suggestion of indexing with {1} instead of the slower converions by CHAR().
na ja
na ja 2016 年 10 月 7 日
thanks Jan

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

カテゴリ

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

質問済み:

2016 年 10 月 5 日

コメント済み:

2016 年 10 月 7 日

Community Treasure Hunt

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

Start Hunting!

Translated by