## Contents

- CRFB2_empir_ARL_profile.m
- Get started
- Design parameters
- Load the data
- Group descriptors
- Collect the ARLs for each group
- Plot the 28-trial ARL profiles
- Plot the 42-trial ARL profiles
- Production-quality plot of Motion ARL42
- Production-quality plot of Texture ARL42
- Define Assimilation
- Plot the 28-trial Assimilation profiles
- Plot the 42-trial Assimilation profiles
- Production-quality plot of Motion Assim42
- Production-quality plot of Texture Assim42
- Export MTN-ARL42 to SSPS for repeated-measures ANOVA
- Export TXT-ARL42 to SSPS for repeated-measures ANOVA
- Clean up

## CRFB2_empir_ARL_profile.m

Final plot of the empirical Avg Response Levels w/ 56-trial blocks. See Figures 4 and 5 in ProtoPaper/expmt.tex. Compare with model_ARL2_predictions.m

    File: work/MLExper/CRFeedback2/prog/CRFB2_empir_ARL_profile.m
    Usage: publish('CRFB2_empir_ARL_profile.m','html') ;    % 'latex','doc','ppt'
    Date: 2009-12-29

    % 1.1.1 2009-12-29 AP: Export the ARL42 profiles to ASCII data files
    % 1.1.0 2009-12-22 AP: Linestyles as in CMUExper/fdbk1/data/empir_ARL2_profile.m
    % 1.0.0 2009-12-04 AP: Wrote it

## Get started

    cd(fullfile(CRFeedback2_pathstr,'data')) ;
    fprintf('\n\nCRFB2_empir_ARL_profile executed on %s.\n\n',datestr(now)) ;
    fprintf('cd %s\n',pwd) ;

    clear all ;

    CRFB2_empir_ARL_profile executed on 28-Dec-2009 19:11:56.

    cd /Users/apetrov/a/r/w/work/MLExper/CRFeedback2/data

## Design parameters

Load them from the code that administered the experiment:

    P = CRFB2_params(0) ;
    design_params = P.design_params ;

    MOTION = P.enum.MOTION ;
    TEXTURE = P.enum.TEXTURE ;

    FAST_LOW = P.enum.FAST_LOW ;
    SLOW_HIGH = P.enum.SLOW_HIGH ;
    UNIF = P.enum.UNIF ;

    idx1 = [1 2 3 6 7] ;  % feedback blocks42 for the feedback-first groups
    idx2 = [1 4 5 8 9] ;  % feedback blocks42 for the no-feedback-first grps
      % @@@ See P.design_params.feedback_sched for the 28-trial blocks

    x42 =     [ 7, 35:42:329] ;
    xtick28 = (1.5:3:10.5) ;  % block-based, @@@@
    xtick42 = (14:84:350) ;   % trial-based
    xtick42b = (1.5:2:7.5) ;  % block-based

    ytick_ARL = (3.0:.2:5.0) ;
    axis28 = [0 14 3 5] ;     % block-based
    axis42 = [0 350 3 5] ;    % trial-based
    axis42b = [0 10 3 5] ;    % block-based

    ytick_Assim = (-2.0:.5:0.5) ;
    A_axis28 = [0 14 -2 0.5] ;  % block-based
    A_axis42 = [0 350 -2 0.5] ; % trial-based
    A_axis42b = [0 10 -2 0.5] ; % block-based

## Load the data

    H_filename = fullfile(CRFeedback2_pathstr,'data','H.mat') ;
    D_filename = fullfile(CRFeedback2_pathstr,'data','D.mat') ;

    %recalculatep = true ;
    recalculatep = false ;
    if (recalculatep || ~exist(H_filename,'file'))
        if (recalculatep || ~exist(D_filename,'file'))
            %- Write down repository revision number
            fprintf('!/usr/local/bin/svn info \n') ;
            !/usr/local/bin/svn info

            %- Concatenate the individual data files into one master ASCII file
            fprintf('!cat sbj*.dat > raw_data.dat \n') ;
            !cat sbj*.dat > raw_data.dat

            %- Import the ASCII data files to Matlab
            fprintf('\nD=CRFB2_import_data ...') ;
            g = fullfile(CRFeedback2_pathstr,'data','raw_data.dat') ;
            D = CRFB2_import_data(g,[],P) ;
            %- Save D for future use
            save(D_filename,'D') ;
            fprintf('\nsave %s \n',D_filename) ;
        else
            fprintf('load %s \n',D_filename) ;
            load(D_filename) ;
        end
        assert(exist('D','var')==1) ;

        %- Calculate the average response levels
        fprintf('\nH = CRFB2_data_by_sbj(D) ...\n') ;
        [H,P,ARL_params] = CRFB2_data_by_sbj(D,1,P) ;
        %- Save H for future use
        save(H_filename,'H') ;
        fprintf('\nsave %s \n\n',H_filename) ;
    else
        fprintf('load %s \n\n',H_filename) ;
        load(H_filename) ;
    end
    assert(exist('H','var')==1) ;

    load /Users/apetrov/a/r/w/work/MLExper/CRFeedback2/data/H.mat

## Group descriptors

group_descr = {'FastLow1' 'FastLow2' 'SlowHigh1' 'SlowHigh2'} ;

    group_descr = design_params.group_descr     %#ok<NOPTS>
    N_groups = length(group_descr) ;            % 4
    FastLow1 = 1 ;     % group identifiers
    FastLow2 = 2 ;
    SlowHigh1 = 3 ;
    SlowHigh2 = 4 ;
    %fdbk_first_p = [1 0 1 0] ;    % exp schedule by group

    sbj = [H.sbj]' ;
    gr = [H.group]' ;
    xtab1(gr)

    N_sbj = length(H) ;

    group_descr =

        'FastLow1'    'FastLow2'    'SlowHigh1'    'SlowHigh2'

       Value   Count  Percent  Cum_cnt  Cum_pct
    -------------------------------------------
           1      10    24.39       10    24.39
           2      10    24.39       20    48.78
           3      10    24.39       30    73.17
           4      11    26.83       41   100.00
    -------------------------------------------

## Collect the ARLs for each group

    N_blocks28 = length(H(1).schedule28) ;
    N_blocks42 = length(H(1).schedule42) ;

    sbj_gr = cell(1,N_groups) ;
    MTN_ARL28 = cell(1,N_groups) ;
    MTN_ARL42 = cell(1,N_groups) ;
    TXT_ARL28 = cell(1,N_groups) ;
    TXT_ARL42 = cell(1,N_groups) ;

    grMTN_ARL28 = NaN(N_blocks28,N_groups) ;
    grMTN_ARL42 = NaN(N_blocks42,N_groups) ;
    grTXT_ARL28 = NaN(N_blocks28,N_groups) ;
    grTXT_ARL42 = NaN(N_blocks42,N_groups) ;
    N_sbj_per_gr = NaN(1,N_groups) ;

    for g = 1:N_groups
        idx = find(gr==g) ;

        % Demographics
        N_sbj_per_gr(g) = length(idx) ;
        sbj_gr{g} = [sbj(idx), gr(idx)] ;    % <subject, group>

        % MOTION
        MTN_ARL28{g} = [H(idx).MOTION_ARL28] ;
        grMTN_ARL28(:,g) = mean(MTN_ARL28{g},2) ;
        MTN_ARL42{g} = [H(idx).MOTION_ARL42] ;
        grMTN_ARL42(:,g) = mean(MTN_ARL42{g},2) ;

        % TEXTURE
        TXT_ARL28{g} = [H(idx).TEXTURE_ARL28] ;
        grTXT_ARL28(:,g) = mean(TXT_ARL28{g},2) ;
        TXT_ARL42{g} = [H(idx).TEXTURE_ARL42] ;
        grTXT_ARL42(:,g) = mean(TXT_ARL42{g},2) ;
    end

## Plot the 28-trial ARL profiles

@@@ using default line colors for the time being

    subplot(1,2,1) ;
    plot(grMTN_ARL28,'o-') ;
    axis(axis28) ; set(gca,'xtick',xtick28,'ytick',ytick_ARL) ; grid on ;
    legend(group_descr,'location','SouthEast') ;
    xlabel('Block (28 trials each)') ; ylabel('Mean ARL') ;
    title(sprintf('MOTION ARL28, %d Ss, 2009-12-04',N_sbj)) ;

    subplot(1,2,2) ;
    plot(grTXT_ARL28,'o-') ;
    axis(axis28) ; set(gca,'xtick',xtick28,'ytick',ytick_ARL) ; grid on ;
    legend(group_descr,'location','NorthEast') ;
    xlabel('Block (28 trials each)') ; ylabel('Mean ARL') ;
    title(sprintf('TEXTURE ARL28, %d Ss, 2009-12-04',N_sbj)) ;

## Plot the 42-trial ARL profiles

@@@ using default line colors for the time being

    subplot(1,2,1) ;
    plot(grMTN_ARL42,'o-') ;
    axis(axis42b) ; set(gca,'xtick',xtick42b,'ytick',ytick_ARL) ; grid on ;
    legend(group_descr,'location','SouthEast') ;
    xlabel('Block (42 trials each)') ; ylabel('Mean ARL') ;
    title(sprintf('MOTION ARL42, %d Ss, 2009-12-04',N_sbj)) ;

    subplot(1,2,2) ;
    plot(grTXT_ARL42,'o-') ;
    axis(axis42b) ; set(gca,'xtick',xtick42b,'ytick',ytick_ARL) ; grid on ;
    legend(group_descr,'location','NorthEast') ;
    xlabel('Block (42 trials each)') ; ylabel('Mean ARL') ;
    title(sprintf('TEXTURE ARL42, %d Ss, 2009-12-04',N_sbj)) ;

## Production-quality plot of Motion ARL42

Same LineStyles as CMUExper/fdbk1/data/empir_ARL2_profile.m

    ls =      {'b-'      'k<-'    'b--'     'k<--'} ; % group line styles
    lw =      [2         2        2         2] ;      % group line widths
    MTN_leg = {'Slow1'   'Fast1'  'Slow2'   'Fast2'} ;
    MTN_gr4 = [SlowHigh1 FastLow1 SlowHigh2 FastLow2] ;
    for k = 1:4    % Add group number in the legend
        MTN_leg{k} = sprintf('Group %d: %s',MTN_gr4(k),MTN_leg{k}) ;
    end
    disp([group_descr(MTN_gr4) ; MTN_leg]) ;  % should match

    clf ; hold on ;
    for k = 1:4
        g = MTN_gr4(k) ;
        hh = plot(x42,grMTN_ARL42(:,g),ls{k}) ;
        set(hh,'LineWidth',lw(k),'MarkerSize',4) ;
    end
    hold off ; box on ;
    axis(axis42) ; set(gca,'xtick',xtick42,'ytick',ytick_ARL,'xgrid','on') ;
    hh = xlabel('Motion Trial') ; set(hh,'FontSize',14) ;
    hh = ylabel('Average response level') ; set(hh,'FontSize',14) ;
    hh = legend(MTN_leg,'location','SouthEast') ; set(hh,'FontSize',14) ;
    %hh = legend(group_descr(MTN_gr4),'location','SouthEast') ; set(hh,'FontSize',14) ;
    % Saved as work/papers/ProtoPaper/fig/ARL-motion.eps, 2009-12-28
    % Preview.app converted it to ARL-motion.pdf

        'SlowHigh1'         'FastLow1'          'SlowHigh2'         'FastLow2'
        'Group 3: Slow1'    'Group 1: Fast1'    'Group 4: Slow2'    'Group 2: Fast2'

## Production-quality plot of Texture ARL42

Same LineStyles as CMUExper/fdbk1/data/empir_ARL2_profile.m

    %ls =     {'b-'      'k<-'    'b--'     'k<--'} ; % group line styles
    %lw =     [2         2        2         2] ;      % group line widths
    TXT_leg = {'Low1'    'High1'  'Low2'   'High2'} ;
    TXT_gr4 = [FastLow1 SlowHigh1 FastLow2 SlowHigh2] ;
    for k = 1:4    % Add group number in the legend
        TXT_leg{k} = sprintf('Group %d: %s',TXT_gr4(k),TXT_leg{k}) ;
    end
    disp([group_descr(TXT_gr4) ; TXT_leg]) ;  % should match

    clf ; hold on ;
    for k = 1:4
        g = TXT_gr4(k) ;
        hh = plot(x42,grTXT_ARL42(:,g),ls{k}) ;
        set(hh,'LineWidth',lw(k),'MarkerSize',4) ;
    end
    hold off ; box on ;
    axis(axis42) ; set(gca,'xtick',xtick42,'ytick',ytick_ARL,'xgrid','on') ;
    hh = xlabel('Texture Trial') ; set(hh,'FontSize',14) ;
    hh = ylabel('Average response level') ; set(hh,'FontSize',14) ;
    hh = legend(TXT_leg,'location','NorthEast') ; set(hh,'FontSize',14) ;
    %hh = legend(group_descr(TXT_gr4),'location','NorthEast') ; set(hh,'FontSize',14) ;
    % Saved as work/papers/ProtoPaper/fig/ARL-texture.eps, 2009-12-28
    % Preview.app converted it to ARL-texture.pdf

        'FastLow1'         'SlowHigh1'         'FastLow2'         'SlowHigh2'
        'Group 1: Low1'    'Group 3: High1'    'Group 2: Low2'    'Group 4: High2'

## Define Assimilation

    Assim_legend = {'Fdbk 1st','No-fdbk 1st'} ;

    grMTN_Assim28 = grMTN_ARL28(:,[FastLow1  FastLow2]) - ...   % Fast
                    grMTN_ARL28(:,[SlowHigh1 SlowHigh2]) ;      % Slow

    grMTN_Assim42 = grMTN_ARL42(:,[FastLow1  FastLow2]) - ...   % Fast
                    grMTN_ARL42(:,[SlowHigh1 SlowHigh2]) ;      % Slow

    MTN_A_leg = {sprintf('Gr%d - Gr%d: Feedback first',FastLow1,SlowHigh1) ...
                 sprintf('Gr%d - Gr%d: No-feedback first',FastLow2,SlowHigh2)} ;

    grTXT_Assim28 = grTXT_ARL28(:,[SlowHigh1 SlowHigh2]) - ...  % High
                    grTXT_ARL28(:,[FastLow1  FastLow2]) ;       % Low

    grTXT_Assim42 = grTXT_ARL42(:,[SlowHigh1 SlowHigh2]) - ...  % High
                    grTXT_ARL42(:,[FastLow1  FastLow2]) ;       % Low

    TXT_A_leg = {sprintf('Gr%d - Gr%d: Feedback first',SlowHigh1,FastLow1) ...
                 sprintf('Gr%d - Gr%d: No-feedback first',SlowHigh2,FastLow2)} ;

## Plot the 28-trial Assimilation profiles

@@@ using default line colors for the time being

    subplot(1,2,1) ;
    plot(grMTN_Assim28,'o-') ;
    axis(A_axis28) ; set(gca,'xtick',xtick28,'ytick',ytick_Assim) ; grid on ;
    legend(Assim_legend,'location','SouthEast') ;
    xlabel('Block (28 trials each)') ;
    ylabel('Mean Assim=ARL(Fast)-ARL(Slow)') ;
    title(sprintf('MOTION Assim28, %d Ss, 2009-12-04',N_sbj)) ;

    subplot(1,2,2) ;
    plot(grTXT_Assim28,'o-') ;
    axis(A_axis28) ; set(gca,'xtick',xtick28,'ytick',ytick_Assim) ; grid on ;
    legend(Assim_legend,'location','SouthEast') ;
    xlabel('Block (28 trials each)') ;
    ylabel('Mean Assim=ARL(High)-ARL(Low)') ;
    title(sprintf('TEXTURE Assim28, %d Ss, 2009-12-04',N_sbj)) ;

## Plot the 42-trial Assimilation profiles

@@@ using default line colors for the time being

    subplot(1,2,1) ;
    plot(grMTN_Assim42,'o-') ;
    axis(A_axis42b) ; set(gca,'xtick',xtick42b,'ytick',ytick_Assim) ; grid on ;
    legend(Assim_legend,'location','SouthEast') ;
    xlabel('Block (42 trials each)') ;
    ylabel('Mean Assim=ARL(Fast)-ARL(Slow)') ;
    title(sprintf('MOTION Assim42, %d Ss, 2009-12-04',N_sbj)) ;

    subplot(1,2,2) ;
    plot(grTXT_Assim42,'o-') ;
    axis(A_axis42b) ; set(gca,'xtick',xtick42b,'ytick',ytick_Assim) ; grid on ;
    legend(Assim_legend,'location','SouthEast') ;
    xlabel('Block (42 trials each)') ;
    ylabel('Mean Assim=ARL(High)-ARL(Low)') ;
    title(sprintf('TEXTURE Assim42, %d Ss, 2009-12-04',N_sbj)) ;

## Production-quality plot of Motion Assim42

Same LineStyles as CMUExper/fdbk1/data/empir_ARL2_profile.m

    clf ;
    hh = plot(x42,grMTN_Assim42(:,1),'r-' ...
             ,x42,grMTN_Assim42(:,2),'b--' ...
             ,x42(idx1),grMTN_Assim42(idx1,1),'ro' ...
             ,x42(idx2),grMTN_Assim42(idx2,2),'bs' ) ;
    set(hh,'LineWidth',2) ;
    axis(A_axis42) ;
    hh=refline(0,0) ; set(hh,'Color','k','LineStyle','-','LineWidth',1) ;
    box on ;
    set(gca,'xtick',xtick42,'ytick',ytick_Assim,'xgrid','on') ;
    hh = xlabel('Motion Trial') ; set(hh,'FontSize',14) ;
    hh = ylabel('ARL(Fast) - ARL(Slow)') ; set(hh,'FontSize',14) ;
    hh = legend(MTN_A_leg,'Location','SouthEast') ; set(hh,'FontSize',14) ;
    % Saved as work/papers/ProtoPaper/fig/Assim-motion.eps, 2009-12-28
    % Preview.app converted it to Assim-motion.pdf

## Production-quality plot of Texture Assim42

Same LineStyles as CMUExper/fdbk1/data/empir_ARL2_profile.m

    clf ;
    hh = plot(x42,grTXT_Assim42(:,1),'r-' ...
             ,x42,grTXT_Assim42(:,2),'b--' ...
             ,x42(idx1),grTXT_Assim42(idx1,1),'ro' ...
             ,x42(idx2),grTXT_Assim42(idx2,2),'bs' ) ;
    set(hh,'LineWidth',2) ;
    axis(A_axis42) ;
    hh=refline(0,0) ; set(hh,'Color','k','LineStyle','-','LineWidth',1) ;
    box on ;
    set(gca,'xtick',xtick42,'ytick',ytick_Assim,'xgrid','on') ;
    hh = xlabel('Texture Trial') ; set(hh,'FontSize',14) ;
    hh = ylabel('ARL(High) - ARL(Low)') ; set(hh,'FontSize',14) ;
    hh = legend(TXT_A_leg,'Location','SouthEast') ; set(hh,'FontSize',14) ;
    % Saved as work/papers/ProtoPaper/fig/Assim-texture.eps, 2009-12-28
    % Preview.app converted it to Assim-texture.pdf

## Export MTN-ARL42 to SSPS for repeated-measures ANOVA

Write an ASCII file with one row per subject and the following columns:

- 1. Sbj -- Subject number (451-492, 999)
- 2. Group -- 1=FastLow1, 2=FastLow2, 3=SlowHigh1, 4=SlowHigh2
- 3. Task -- 1=MOTION throughout
- 4. Context -- 1=Slow, 2=Fast
- 5. Order -- 1=Feedback_first, 2=No_feedback_first
- 6. W -- ARL2 value for the "warm-up" initial block
- 7-10. F1-F4 -- ARL42 values during the four feedback blocks
- 11-14. N1-N4 -- ARL42 values during the four no-feedback blocks

Note that this data format throws away the temporal order of observations. They are rearranged depending on Order so that in the resulting ASCII file all feedback ARLs are listed in columns F1-F4 and all no-feedback ARLs are listed in columns N1-N4.

Results of SPSS analyses available in work/MLExper/CRFeedback2/SPSS/

    rearrange = [1, 2 3 6 7, 4 5 8 9 ; ...     % when order=1
                 1, 4 5 8 9, 2 3 6 7 ]' ;      % when order=2
    order_by_group = [1 2 1 2] ;        % FastLow1, FastLow2, SlowHigh1, SlowHigh2
    MTN_context_by_group = [2 2 1 1] ;  % FastLow1, FastLow2, SlowHigh1, SlowHigh2

    %- Prepare a matrix with the relevant data in the proper format
    MTN_data42 = NaN(N_sbj,14) ;
    for k = 1:N_sbj
        MTN_data42(k,1) = H(k).sbj ;
        g = H(k).group ;
        MTN_data42(k,2) = g ;
        MTN_data42(k,3) = MOTION ;                % = const
        MTN_data42(k,4) = MTN_context_by_group(g) ;
        MTN_data42(k,5) = order_by_group(g) ;
        idx = rearrange(:,order_by_group(g)) ;
        MTN_data42(k,6:14) = H(k).MOTION_ARL42(idx) ;
    end

    %- Sanity check
    for g = 1:N_groups
        idx = find(MTN_data42(:,2)==g) ;
        hh = mean(MTN_data42(idx,6:14)) ;  %#ok<FNDSB> % rearranged mean_ARL for this group
        assert(all(grMTN_ARL42(rearrange(:,order_by_group(g)),g)==hh')) ;
    end

    % Write to an ASCII file
    fid = fopen(fullfile(CRFeedback2_pathstr,'SPSS','MTN-ARL42-wn-Ss.dat'),'w') ;
    hh = [fid 1] ;   % Echo on stdout using fprintN
    fprintN(hh,'Sbj Group Task Context Order W F1 F2 F3 F4 N1 N2 N3 N4\n') ;
    for k = 1:N_sbj
        fprintN(hh,...
          '%02d %1d %1d %1d %1d %5.3f %5.3f %5.3f %5.3f %5.3f %5.3f %5.3f %5.3f %5.3f\n',...
          MTN_data42(k,:)) ;
    end
    fclose(fid) ;

    Sbj Group Task Context Order W F1 F2 F3 F4 N1 N2 N3 N4
    451 4 1 1 2 3.643 4.844 4.211 4.710 4.511 5.029 5.378 4.820 4.854
    452 1 1 2 1 4.071 3.656 3.758 3.867 4.093 3.908 3.753 4.770 4.168
    453 1 1 2 1 3.214 3.609 3.432 3.444 3.666 3.968 3.132 3.274 4.105
    454 4 1 1 2 4.143 4.025 3.848 4.191 4.113 3.906 3.943 3.980 4.025
    455 3 1 1 1 4.143 4.428 4.793 4.299 4.151 5.017 4.318 4.953 4.612
    456 4 1 1 2 5.184 4.777 4.221 3.877 3.943 5.441 5.179 4.212 3.546
    457 3 1 1 1 4.111 4.060 4.131 4.129 4.212 4.417 4.915 4.045 4.566
    458 4 1 1 2 4.643 4.527 4.756 4.040 4.237 4.690 5.282 4.257 4.338
    459 2 1 2 2 4.357 3.930 4.847 5.051 4.292 3.959 3.576 4.384 3.640
    460 2 1 2 2 4.082 4.439 3.963 4.064 4.076 3.233 4.387 3.388 4.189
    461 3 1 1 1 4.428 4.395 4.140 4.800 4.180 4.827 4.780 4.463 4.489
    462 1 1 2 1 3.869 4.608 4.454 4.478 4.219 4.420 4.203 3.953 3.590
    463 2 1 2 2 3.065 3.779 3.579 4.072 4.498 2.558 2.899 3.730 4.094
    464 1 1 2 1 3.071 4.184 4.328 3.881 4.565 4.556 4.161 3.960 3.870
    465 3 1 1 1 4.694 4.854 4.238 4.004 4.193 4.585 4.681 4.097 3.499
    468 3 1 1 1 4.143 4.894 4.584 4.367 4.624 5.094 4.912 4.512 4.426
    469 2 1 2 2 3.548 3.682 3.905 3.951 4.269 3.046 2.839 3.547 3.335
    470 4 1 1 2 4.000 4.052 4.512 4.540 4.360 4.444 4.655 5.189 5.218
    471 3 1 1 1 3.929 4.206 4.056 3.995 3.643 4.921 4.345 3.891 3.902
    472 1 1 2 1 4.357 3.905 4.716 4.569 4.709 3.950 4.399 4.505 4.441
    473 2 1 2 2 3.639 3.975 3.815 4.456 4.333 2.851 2.775 3.746 4.431
    474 4 1 1 2 3.648 4.692 4.709 4.828 4.387 5.322 5.757 4.693 3.895
    475 2 1 2 2 4.071 3.773 3.854 3.784 4.048 3.621 3.698 3.970 4.452
    476 2 1 2 2 3.924 3.829 3.652 3.440 4.181 2.878 2.241 3.705 3.072
    477 4 1 1 2 2.857 5.055 4.318 4.089 3.794 4.298 4.329 4.012 2.733
    478 1 1 2 1 4.000 4.468 4.675 4.215 4.790 4.869 4.578 5.183 5.453
    479 3 1 1 1 4.384 4.429 4.646 4.344 4.462 5.004 4.449 4.753 4.434
    480 1 1 2 1 4.000 3.525 4.406 4.288 4.311 3.761 3.788 4.739 4.591
    481 1 1 2 1 4.286 3.669 3.926 3.762 3.923 3.836 3.511 4.057 4.401
    482 4 1 1 2 4.643 5.049 4.563 4.707 4.496 5.138 5.535 5.213 5.392
    483 1 1 2 1 4.277 3.955 4.168 4.024 3.945 3.673 2.995 4.780 4.432
    484 3 1 1 1 3.643 4.234 4.275 4.058 3.896 3.808 4.363 4.077 4.361
    485 4 1 1 2 4.143 4.100 4.505 4.147 4.392 4.941 5.107 4.746 4.365
    486 4 1 1 2 3.857 4.697 4.820 4.897 4.691 5.178 5.351 4.777 5.361
    487 2 1 2 2 4.365 4.021 3.886 4.446 4.363 4.207 3.988 3.661 4.087
    488 2 1 2 2 4.071 3.617 4.096 4.262 4.096 3.941 2.972 3.943 3.712
    489 1 1 2 1 5.434 4.420 4.543 4.033 4.516 4.290 4.515 4.201 3.860
    490 2 1 2 2 3.637 3.402 4.111 3.994 4.488 3.261 3.051 3.833 3.658
    491 3 1 1 1 3.667 4.283 4.044 4.388 4.058 4.122 4.520 3.756 3.291
    492 4 1 1 2 4.605 3.606 3.925 3.478 3.527 4.006 3.847 4.003 3.435
    999 3 1 1 1 4.286 4.017 3.991 4.575 4.363 5.174 4.863 4.686 4.784

## Export TXT-ARL42 to SSPS for repeated-measures ANOVA

Write an ASCII file with one row per subject and the following columns:

- 1. Sbj -- Subject number (451-492, 999)
- 2. Group -- 1=FastLow1, 2=FastLow2, 3=SlowHigh1, 4=SlowHigh2
- 3. Task -- 2=TEXTURE throughout
- 4. Context -- 3=Low, 4=High
- 5. Order -- 1=Feedback_first, 2=No_feedback_first
- 6. W -- ARL2 value for the "warm-up" initial block
- 7-10. F1-F4 -- ARL42 values during the four feedback blocks
- 11-14. N1-N4 -- ARL42 values during the four no-feedback blocks

Note that this data format throws away the temporal order of observations. They are rearranged depending on Order so that in the resulting ASCII file all feedback ARLs are listed in columns F1-F4 and all no-feedback ARLs are listed in columns N1-N4.

Results of SPSS analyses available in work/MLExper/CRFeedback2/SPSS/

    TXT_context_by_group = [3 3 4 4] ;  % FastLow1, FastLow2, SlowHigh1, SlowHigh2

    %- Prepare a matrix with the relevant data in the proper format
    TXT_data42 = NaN(N_sbj,14) ;
    for k = 1:N_sbj
        TXT_data42(k,1) = H(k).sbj ;
        g = H(k).group ;
        TXT_data42(k,2) = g ;
        TXT_data42(k,3) = TEXTURE ;                % = const
        TXT_data42(k,4) = TXT_context_by_group(g) ;
        TXT_data42(k,5) = order_by_group(g) ;
        idx = rearrange(:,order_by_group(g)) ;
        TXT_data42(k,6:14) = H(k).TEXTURE_ARL42(idx) ;
    end

    %- Sanity check
    for g = 1:N_groups
        idx = find(TXT_data42(:,2)==g) ;
        hh = mean(TXT_data42(idx,6:14)) ;  %#ok<FNDSB> % rearranged mean_ARL for this group
        assert(all(grTXT_ARL42(rearrange(:,order_by_group(g)),g)==hh')) ;
    end

    % Write to an ASCII file
    fid = fopen(fullfile(CRFeedback2_pathstr,'SPSS','TXT-ARL42-wn-Ss.dat'),'w') ;
    hh = [fid 1] ;   % Echo on stdout using fprintN
    fprintN(hh,'Sbj Group Task Context Order W F1 F2 F3 F4 N1 N2 N3 N4\n') ;
    for k = 1:N_sbj
        fprintN(hh,...
          '%02d %1d %1d %1d %1d %5.3f %5.3f %5.3f %5.3f %5.3f %5.3f %5.3f %5.3f %5.3f\n',...
          TXT_data42(k,:)) ;
    end
    fclose(fid) ;

    Sbj Group Task Context Order W F1 F2 F3 F4 N1 N2 N3 N4
    451 4 2 4 2 4.286 3.541 3.699 3.624 3.896 4.078 4.260 3.403 3.539
    452 1 2 3 1 3.003 3.726 3.551 3.182 3.502 3.205 2.482 3.454 3.320
    453 1 2 3 1 4.058 4.121 4.241 3.912 3.953 3.593 3.992 3.640 3.570
    454 4 2 4 2 4.121 3.207 3.436 3.625 3.745 2.540 2.409 3.284 3.665
    455 3 2 4 1 3.038 3.287 3.272 3.051 3.419 2.951 2.804 3.530 3.328
    456 4 2 4 2 4.258 3.746 3.913 3.761 3.955 3.969 3.880 3.799 3.556
    457 3 2 4 1 4.214 3.671 3.540 3.818 4.113 3.858 3.711 3.980 3.934
    458 4 2 4 2 3.500 3.537 3.672 3.707 3.644 2.856 2.592 3.476 2.928
    459 2 2 3 2 4.646 4.056 3.766 4.301 4.328 4.044 3.858 4.355 4.519
    460 2 2 3 2 3.580 3.989 3.795 3.576 3.882 3.985 3.769 3.574 3.207
    461 3 2 4 1 4.500 3.532 3.244 3.328 3.583 3.342 3.226 3.678 3.591
    462 1 2 3 1 4.000 3.904 4.251 4.225 4.283 4.091 4.134 4.642 4.065
    463 2 2 3 2 3.365 3.608 3.735 4.000 3.985 3.372 3.397 3.895 4.007
    464 1 2 3 1 3.371 4.228 3.957 3.759 4.108 3.944 3.469 4.197 3.897
    465 3 2 4 1 4.292 3.671 3.470 3.597 3.706 3.352 3.039 3.497 3.279
    468 3 2 4 1 4.008 3.322 3.196 3.135 3.375 3.181 2.629 3.020 3.218
    469 2 2 3 2 3.286 3.663 4.188 3.716 3.845 3.835 3.898 3.756 3.527
    470 4 2 4 2 3.461 3.290 3.291 3.417 3.220 3.353 3.120 3.775 3.814
    471 3 2 4 1 4.052 3.600 3.772 3.697 4.038 3.309 3.472 4.046 3.939
    472 1 2 3 1 3.214 4.243 4.223 4.181 3.813 4.179 4.021 3.864 3.983
    473 2 2 3 2 4.009 3.904 4.087 4.165 3.973 3.933 3.858 4.049 4.247
    474 4 2 4 2 3.571 3.298 3.438 3.641 3.522 3.023 2.703 3.710 3.265
    475 2 2 3 2 3.357 3.695 3.595 3.732 3.682 3.565 3.039 3.246 3.170
    476 2 2 3 2 3.643 4.273 4.133 4.292 3.997 4.382 4.126 4.360 4.544
    477 4 2 4 2 3.103 3.002 3.319 3.477 3.426 2.825 2.188 3.160 2.634
    478 1 2 3 1 3.357 4.302 4.201 3.872 3.790 4.300 3.986 3.928 3.997
    479 3 2 4 1 4.035 3.304 3.673 3.455 3.655 3.625 3.065 3.646 3.907
    480 1 2 3 1 4.000 4.710 3.917 3.877 4.083 3.602 3.591 3.539 3.907
    481 1 2 3 1 4.332 4.553 4.536 4.059 3.792 4.169 4.041 4.202 4.203
    482 4 2 4 2 3.786 3.790 3.979 3.431 3.868 3.703 3.494 3.923 3.361
    483 1 2 3 1 3.357 4.007 4.103 4.247 3.979 4.113 4.216 4.044 4.056
    484 3 2 4 1 3.617 3.531 3.490 3.829 3.688 3.263 3.131 3.599 3.705
    485 4 2 4 2 4.543 2.896 3.458 3.652 3.545 3.512 3.308 3.115 3.243
    486 4 2 4 2 3.286 3.418 3.477 3.313 3.806 3.942 2.886 3.557 3.090
    487 2 2 3 2 4.035 4.320 3.979 3.792 3.844 4.400 4.380 3.842 3.837
    488 2 2 3 2 3.357 3.432 3.598 3.790 3.997 3.125 2.922 3.863 4.095
    489 1 2 3 1 3.621 4.432 4.502 4.275 4.057 3.718 4.393 4.081 3.921
    490 2 2 3 2 3.518 3.994 3.820 3.911 3.872 4.094 3.918 3.876 3.987
    491 3 2 4 1 4.000 3.685 3.788 3.713 3.764 3.583 3.419 4.172 4.387
    492 4 2 4 2 4.143 3.500 3.426 3.558 3.637 3.603 3.259 3.647 3.528
    999 3 2 4 1 4.357 3.644 3.658 3.035 2.936 3.378 2.684 3.305 2.878

## Clean up

    clear D hh k g idx fid ;

    % 2009-12-28