필터 지우기
필터 지우기

Reference to non-existent field error

조회 수: 1 (최근 30일)
zexi Leong
zexi Leong 2020년 1월 7일
편집: Stephen23 2020년 1월 7일
Hi there, I am new at MATLAB and currently trying to extract data from a particular subfolder from every subject and to put it all into an excel file
basically i want to retrieve mean times which is calculated from taking the mean of values in delay series variable (location: parent_directory > containing many subject folders labelled img0001, img0002 etc > each subject folder contains a .mat file called stopchoicert.mat > variable delayseries can be found here)
D = 'C:\Users\extlzx\Documents\MATLAB\Behavioural Data and script\behavioural data\';
S = dir(fullfile(D,'img*'));
for k = 264 %to access folder for subject number 264, usually i would put this as a loop from 1 to 300 but just for testing i put 264
SSRT = fullfile(D,S(k).name,'stopchoicert.mat');
if exist(SSRT,'file')==2;
T = load(SSRT);
meanssd = mean(delayseries); %delayseries is a 160X160 double(?) but only the first column contains value of interest. the rest are zeros. hence i took the mean and specified the first column and first row of meanssd which would contain my value that i wish to extract
S(k).data = T.meanssd(1,1);
end
end
writetable(struct2table(S), 'extracteddata2.xlsx')
Why do i get the error of:
Reference to non-existent field 'meanssd'.
Error in ssrtscript (line 8)
S(k).data = T.meanssd(1,1);
am I not creating new variable meanssd @ line 8? I do see variable meanssd in my workspace though. Encountered similar problems before but have been unable to resolve
  댓글 수: 4
zexi Leong
zexi Leong 2020년 1월 7일
Ah I think I understand but I am not too sure if i am on the right track.
D = 'C:\Users\extlzx\Documents\MATLAB\Behavioural Data and script\behavioural data\';
S = dir(fullfile(D,'img*'));
for k = 264
SSRT = fullfile(D,S(k).name,'stopchoicert2.mat');
if exist(SSRT,'file')==2;
T = load(SSRT);
meanssd = mean(delayseries);
T = struct('mssd',[])
T.mssd = meanssd(1,1)
S(k).data = T.mssd;
end
end
writetable(struct2table(S), 'extracteddata2.xlsx')
Would this make more sense?
Stephen23
Stephen23 2020년 1월 7일
편집: Stephen23 2020년 1월 7일
"Would this make more sense?"
Not really, as now you load some file data into a structure T, which you then totally ignore (because that variable is never accessed, and it is completely reallocated two lines later).
As you have not explained what data you expect to be in S, it is hard to make any suggestions what you should be doing. Perhaps you are trying to do something like this:
T = load(SSRT);
V = mean(T.delayseries);
S(k).mssd = V(1,1);

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

답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by