Need to create a 3 dimensional matrix of subjects, block numbers and 6 sub condition values within each block.
Mostra commenti meno recenti
Hi, Until now I have worked only with 2D matrices which resemble spreadsheets. Now I have data with one more dimension. I have 19 subjects who each did 8 blocks of an experiment. In each block they got different numbers of task 1 to 6 correct.
Here is the script so far:
clear
close all
subno={'s_01','s_03', 's_05', 's_06', 's_09', 's_11', 's_13', 's_16', 's_18', 's_20', 's_22','s_23', 's_26','s_28', 's_31', 's_33', 's_34','s_35', 's_37',};
blockno={'_01', '_02','_03', '_04', '_05', '_06','_07', '_08'};
for k=1:length(subno)
%defining paths
MAIN = '/data/janani/EoA/logfiles';
PATHIN=[MAIN, '/',subno{k}, '/'];
PATHOUT=[MAIN, '/BEHanalysis/'];
for j=1:length (blockno)
textfile= ['jad1_',subno{k}, blockno{j}, '.txt'];
cd (PATHIN);
list1=dir('*.txt');
fname=[PATHIN, textfile];
fid=fopen(fname);
for i=1:72
[M1(i,:)]=fscanf(fid,'%i', [1 6]);
end
%We write the following loops to extract the correct responses into corr_H0, 1 and 2
%the below loop checks if there is 0, 1 and 2 in both the nuhBIG Hs (2) and resp column (4)
count0=1;
for p = 1:size (M1, 1)
if (M1 (p, 2)==0 && M1 (p, 4)==0)
corr_H0(count0)=p
count0=count0+1;
end
end
count1=1;
for q = 1:size (M1, 1)
if (M1 (q, 2)==1 && M1 (q, 4)==1)
corr_H1(count1)=q
count1=count1+1;
end
end
count2=1;
for r = 1:size (M1, 1)
if (M1 (r, 2)==2 && M1 (r, 4)==2)
corr_H2(count2)=r
count2=count2+1;
end
end
%the below loop checks if there is 0, 1 and 2 in both the nuhSmall Hs (3) and resp column (4)
count0s=1;
for p = 1:size (M1, 1)
if (M1 (p, 3)==0 && M1 (p, 4)==0)
corr_H0(count0s)=p
count0s=count0s+1;
end
end
count1s=1;
for q = 1:size (M1, 1)
if (M1 (q, 3)==1 && M1 (q, 4)==1)
corr_H1(count1s)=q
count1s=count1s+1;
end
end
count2s=1;
for r = 1:size (M1, 1)
if (M1 (r, 3)==2 && M1 (r, 4)==2)
corr_H2(count2s)=r
count2s=count2s+1;
end
end
c= [count0, count1, count2, count0s, count1s, count2s]; %is the array of the 6 values that need to join the j and k values.
%I tried this:
SBC=(k, j, c);
%but it doesn´t give me what I want.
end
end
Just before the end of the loop I would need to input count0, count1, count2, count0s, count1s, and count2s into the matrix which also indicates k (the subject number) and j (which indicates block number) into the matrix before their values are overwritten.
Any help would be appreciated. Thanks! Jan
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Spreadsheets in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!