Clear Filters
Clear Filters

Error using ==> eval

13 views (last 30 days)
M K
M K on 22 Sep 2016
Edited: Stephen23 on 19 Jun 2019
Hi,
I am writing a code to compare several nested structures. Basically I need to compare all the values in cell (x,1) in every structure to the cell (x,1) in every other structure.
My issue right now is with organizing the output. I need the output to be a structure (output) that contains a structure for each subject (subject1) and I want that structure to be named according to a looping variable, x (representing the subject #) and then within that subject1 structure, I want structures for each of the comparison subjects (subject2), also named according to a looping variable, y.
Here is what I have written so far:
function output=hcp_compare(hcp)
output=zeros(843,1);
%for all subjects in x
for x=1:length(hcp)
%create subject name
subject1=eval(['subj' num2str(x)]);
%insert main subject name
output(x,1).(subject1)(1,1).name=hcp(x,1).name;
%then loop through evry subject and compare to x
for y=1:length(hcp)
%loop through evry cell in connMatVect and compare for evry xypair
subject2=eval(['subj' num2str(y)]);
for z=1:35778
output(x,1).(subject1)(2,1).comparisons(x,y).(subject2)(z,1)=(hcp(x,1).connMatVect(z,1)-hcp(y,1).connMatVect(z,1));
end
end
end
end
I want (subject1) and (subject2) to be replaced by subjx and subjy. But when I run the code, I get the following error:
??? Error using ==> eval
Undefined function or variable 'subj1'.
Error in ==> hcp_compare at 10
subject1=eval(['subj' num2str(x)]);
So I believe I'm missing something or not understanding something. Can anyone give some pointers?
  1 Comment
Stephen23
Stephen23 on 22 Sep 2016
"I believe I'm missing something or not understanding something. Can anyone give some pointers?"
Don't use eval.

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 22 Sep 2016
Edited: Stephen23 on 19 Jun 2019

More Answers (1)

dpb
dpb on 22 Sep 2016
DON'T DO THIS!!! See <generate-field-names-from-variables> for how to do this instead.

Products

Community Treasure Hunt

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

Start Hunting!