Printing string as a variable
Mostrar comentarios más antiguos
I have a table (mytable)with 'm' rows and I am trying to add multiple empty columns with names that are in ascending numerical order (variable_01var, variable_02var etc) :
for i = 1:16
number = sprintf('%02d',i);
variable = insertAfter('mytable.variable_var', '_', number)
sprintf(variable) = zeros(m,1);
end
I am not sure how to get the generated variable name printed as a variable though?
Any help much appreciated, thanks!
Rob
3 comentarios
Rik
el 20 de Sept. de 2017
Are you using the data type table, or are you calling your matrix a table?
What you are looking for is the function eval, but DON'T DO THIS. You can see a discussion on why using eval is bad here or a more recent one here.
I would advise you to think what it is you want to do, because it sounds like the table data type has what you need. (on older releases it is not available)
rob
el 20 de Sept. de 2017
Stephen23
el 20 de Sept. de 2017
" I am trying to add multiple empty columns with names that are in ascending numerical order (variable_01var, variable_02var etc)"
Do NOT do this.
Read what the MATLAB documentation has to say about this: "A frequent use of the eval function is to create sets of variables such as A1, A2, ..., An, but this approach does not use the array processing power of MATLAB and is not recommended. The preferred method is to store related data in a single array"
You should also read this:
and after that keep your data in one array and use indexing, or use a table.
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Tables en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!