function K = myX2K(X, r, c, n)
% MYX2K muuttaa datamatriisin X (double) kuvakokoelmaksi K 
% (uint8) siten, että kukin X:n sarake tulee yhdeksi kuvaksi.
%
%    K = myX2K(X, r, c, n)
% 
%    K         kuvakokoelma muodossa (r x c x 1 x n),
%              katso "help montage"
%    X         datamatriisi (rc x n)
%    r         kuvan rivien määrä, pikseleitä pystyrivillä
%    c         kuvan sarakkeiden määrä, pikseleitä vaakarivillä
%    n         kuvakokoelman kuvien lukumäärä
%
% Esimerkki:
%    load 12345A;
%    X = myK2X(K);
%    L = myX2K(X, size(K,1), size(K,2), size(K,4));  % K == L

% Jukka Parviainen, 2005-2008

if nargin <= 3
    error('Liian vähän argumentteja. Katso "help myX2K"');
end;
if (length(size(X)) ~= 2)
    error('Datamatriisi X väärän muotoinen.  Katso "help myX2K"');
end;
if (prod(size(X)) ~= r*c*n)
    error('X:n alkioiden määrä pitää olla r*c*n. Katso "help myX2K"');
end;

K = real(X);
K = reshape(K, r, c, 1, n);

% SKAALAUS -- (b)

% (a) "ei ollenkaan
% eimitään

% (b) "globaalisti":
K = K - min(K(:));
K = 255*K/max(K(:));

% (c) "lokaalisti":
% %for i = [1 : n]
%    dummyMin = min(min(K(:,:,1,i)));
%    dummyMax = max(max(K(:,:,1,i)));
%    K(:,:,1,i) = K(:,:,1,i) - dummyMin;
%    K(:,:,1,i) = 255*K(:,:,1,i)/dummyMax;
%end;

K = uint8(K);

