Dynamic struct names with strings.

3 visualizaciones (últimos 30 días)
BdS
BdS el 24 de Abr. de 2019
Editada: James Tursa el 24 de Abr. de 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.

Respuesta aceptada

Walter Roberson
Walter Roberson el 24 de Abr. de 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 comentarios
Guillaume
Guillaume el 24 de Abr. de 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
Walter Roberson el 24 de Abr. de 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()

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Structures en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by