Using assignin or evalin command to populate Structure Elements with Numeric Data.
조회 수: 5 (최근 30일)
이전 댓글 표시
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
채택된 답변
Azzi Abdelmalek
2015년 6월 24일
편집: Azzi Abdelmalek
2015년 6월 24일
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)
추가 답변 (1개)
Matt J
2015년 6월 24일
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)]);
참고 항목
카테고리
Help Center 및 File Exchange에서 Structures에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!