Dynamic struct names with strings.

Hi
I have got a 4x1 cell (named= RankFileNames) with the following chars
'0_1_workspace_20190410.mat'
'0_2_workspace_20190228.mat'
'1_1_workspace_sectNorm_20190228.mat'
'1_2_workspace_sectNorm_20190410.mat'
I would like create the following dynamic struct: RawData.(RankFileNames{1,1}).factorlist=[2 4 5 3] next interation
RawData.(RankFileNames{2,1}).factorlist=[2 4 5 3] and so one
However, Matlab returns the following error: Invalid field name: '0_1_workspace_20190410.mat'.
I am not interested in getting the apostrophes. Desired solution: RawData.0_1_workspace_20190410.mat.factorlist and RawData.0_2_workspace_20190228.mat.factorlist
Do you have any hints? thank you in advance.

 採用された回答

Walter Roberson
Walter Roberson 2019 年 4 月 24 日

1 投票

You cannot do that. Field names cannot begin with a number or an underscore. You would need to prefix the file name with something.

2 件のコメント

Guillaume
Guillaume 2019 年 4 月 24 日
field names also can't have a .
The error message is entirely correct, your field names are invalid.
You could use matlab.lang.makeValidName to make valid field names out of your strings. This would change '1_1_workspace_sectNorm_20190228.mat' into 'x1_1_workspace_sectNorm_20190228_mat'
Walter Roberson
Walter Roberson 2019 年 4 月 24 日
.. I still think it was a mistake for them to have gone from a simple function name such as genvarname() for the rather forgettable matlab.lang.makeValidName()

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

その他の回答 (0 件)

カテゴリ

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

質問済み:

BdS
2019 年 4 月 24 日

編集済み:

2019 年 4 月 24 日

Community Treasure Hunt

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

Start Hunting!

Translated by