how to make a variable name from a string
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
2013a version
>> test='eye'
>> value = [5,5,3]
value =
5 5 3
>> eval([sprintf(test) '= data+1']);
Index exceeds matrix dimensions.
How to fix this error? Thank you for helping!
0 comentarios
Respuesta aceptada
kjetil87
el 16 de Ag. de 2013
Editada: kjetil87
el 16 de Ag. de 2013
The error should not appear, your code looks to work exept for the part of 'data' , should this instead be value?
test='eye';
value=[1,2,3];
eval([sprintf(test) '=value+1'])
eye =
2 3 4
The index exceeds matrix dimension could be related to that you have at some point declared a variable in your workspace ( or funciton or whatever ) with the name of eval.
try typing
which eval
it should return that eval is a built-in function, if it returns eval is a variable there is the reason for your error. If so just use
clear eval
Más respuestas (3)
xianghong
el 16 de Ag. de 2013
1 comentario
Walter Roberson
el 16 de Ag. de 2013
No, it is not just for creating field names within a variable. It shows a number of different alternatives to creating a variable from a string, recommending strongly that you use one of the alternatives instead of creating a variable dynamically. At the end of the FAQ it shows how to create a variable dynamically, for the rare case when you really need to do that. If you are not engaged in creating extensions to MATLAB itself, chances are that there is a better route than creating a variable dynamically.
xianghong
el 16 de Ag. de 2013
2 comentarios
Walter Roberson
el 16 de Ag. de 2013
Please use the command
clear eval
and then try again
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!