Using assignin or evalin command to populate Structure Elements with Numeric Data.
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Shyama Prasad Mishra
el 24 de Jun. de 2015
Hello,
I am getting an error while executing the below command:
assignin('base', 'A.B', 1)|
Error:
??? Error using ==> assignin
Invalid variable name "A.B" in ASSIGNIN.
As a work around i tried to use:
assignin('base', 'temp', 1);
evalin('base','A.B = temp');
evalin('base','clear temp');
The above work around was proposed in one of the previous threads:
The problem I have is that, my Structure elements are read from a Cell Array inside a for loop.
Lets say C = {'A.B', 'A1.B1'}
So how do I pass 'C' as a parameter to the below line:
evalin('base','C = temp')
Expected output: A.B = 1, A1.B1 = 1 (In Base Workspace)
I also tried to use setfield command, but could not succeed.
Thanks, Shyama
1 comentario
Respuesta aceptada
Azzi Abdelmalek
el 24 de Jun. de 2015
Editada: Azzi Abdelmalek
el 24 de Jun. de 2015
You probably can use other alternatives here http://www.mathworks.com/help/matlab/matlab_prog/string-evaluation.html
For your problem you can use
C = {'A.B', 'A1.B1'}
assignin('base', 'temp', 1);
cellfun(@(x) evalin('base',[x '=temp']),C)
Más respuestas (1)
Matt J
el 24 de Jun. de 2015
Not sure why you're not just using setfield(), but another option is
evalin('base','A.B=1');
or
evalin('base',['A.B=' num2str(1)]);
1 comentario
Ver también
Categorías
Más información sobre Structures 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!