1234567891011121314151617181920212223242526272829303132333435363738394041 |
- %% create artificial datasets and sequences
- data_dev = [10,3,3,1;1,3,1,3;3,3,3,3]';
- data_std = [2,11,2,2,4,2,4,2;2,2,4,2,4,2,2,2;2,4,2,2,4,4,4,2]';
- n_files = size(data_dev,2);
- n_dev = size(data_dev,1);
- n_std = size(data_std,1);
- n_stims = n_dev+n_std;
- seq = [1,1,0,1,1,1,0,1,1,0,0,1;0,1,1,1,0,0,1,1,0,1,1,1;1,1,0,1,1,1,0,1,0,1,0,1]';
- seqStd = logical(seq);
- seqDev = ~seq;
- %% shift dev and std sequence by one point and index into it with original std and dev sequence to obtain stds before devs and devs after stds
- seqStd_bd = logical([seqDev(2:n_stims,:);zeros(1,n_files)]); % shift original dev sequences by 1 point (forwards)
- seqStd_bd = reshape(seqStd_bd(seqStd),n_std,n_files); % index into shifted deviant sequences with original std sequences to obtain stds before devs
- seqDev_as = logical([zeros(1,n_files);seqStd(1:n_stims-1,:)]); % shift original std sequences by 1 point (backwards)
- seqDev_as = reshape(seqDev_as(seqDev),n_dev,n_files); % index into shifted standard sequences with original dev sequences to obtain dev after stds
- %% apply newly generated sequences on dev and std datasets
- sample_std = cell(1,n_files);
- sample_dev = cell(1,n_files);
- for j = 1:n_files
- sample_std{1,j} = data_std(seqStd_bd(:,j),j);
- sample_dev{1,j} = data_dev(seqDev_as(:,j),j);
- end
- %% same approach with only one std/dev dataset
- data_dev = [10,3,3,1];
- data_std = [2,11,2,2,4,2,4,2];
- seq = [1,1,0,1,1,1,0,1,1,0,0,1];
- seq_std = logical(seq);
- seq_dev = ~seq;
- seq_std_bd_temp = logical([seq_dev(2:end),zeros(1,1)]);
- seqStd_bd = seq_std_bd_temp(seq_std);
- seq_dev_as_temp = logical([zeros(1,1),seq_std(1:end-1)]);
- seqDev_as = seq_dev_as_temp(seq_dev);
- sample_std = data_std(seqStd_bd)
- sample_dev = data_dev(seqDev_as)
- bla = 1;
|