Reference to non-existent field error
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Stephen23
el 7 de En. de 2020
Editada: Stephen23
el 7 de En. de 2020
"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);
Respuestas (0)
Ver también
Categorías
Más información sobre Logical 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!