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

Stephen23
Stephen23 2016년 9월 22일
"I believe I'm missing something or not understanding something. Can anyone give some pointers?"
Don't use eval.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

dpb
dpb 2016년 9월 22일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

질문:

M K
2016년 9월 22일

편집:

2019년 6월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by