Dynamic struct names with strings.
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
BdS
am 24 Apr. 2019
Bearbeitet: James Tursa
am 24 Apr. 2019
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.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 24 Apr. 2019
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 Kommentare
Guillaume
am 24 Apr. 2019
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
am 24 Apr. 2019
.. 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()
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Structures finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!