This file is indexed.

/usr/share/psychtoolbox-3/PsychOneliners/ShrinkMatrix.m is in psychtoolbox-3-common 3.0.11.20131230.dfsg1-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function out = ShrinkMatrix(in,fac)
% out = ShrinkMatrix(IN, FAC)
% Shrinks a 2-D or 3-D matrix IN (an image) by a factor FAC.
% matrix will be truncated horizontally and vertically so that the
% resultant shrunk matrix would have integer sizes in the x an y dimension.
% size of 3rd dimension will not be scaled.
% shrinking is performed by mean computation.

% 05/09/08 DN  Wrote it.
% 13/06/12 DN  Urgh, this only went over the diagonal of each NxN submatrix
%              (where N is the scaling factor)


% input checking
if ndims(in)>3
    error('input is not an image');
end

ys = size(in,1);
xs = size(in,2);

if fac ~= round(fac)
    error('scaling factor must be an integer');
end

hcut = mod(xs,fac);
vcut = mod(ys,fac);
if hcut~=0
    disp(sprintf('Warning: right edge of input will be truncated by %d pixels',hcut));
end
if vcut~=0
    disp(sprintf('Warning: lower edge of input will be truncated by %d pixels',vcut));
end

if hcut~=0 || vcut~=0
    in = in(1:end-vcut,1:end-hcut,:);
    xs = xs-hcut;
    ys = ys-vcut;
end

out = zeros(ys/fac,xs/fac,size(in,3));
for p=1:fac     % image rows
    for q=1:fac     % image columns
        out = out + in(p:fac:ys,q:fac:xs,:);
    end
end
out = out./(fac^2);