You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.5 KiB
Matlab
60 lines
1.5 KiB
Matlab
10 years ago
|
function [h, display_array] = displayData(X, example_width)
|
||
|
%DISPLAYDATA Display 2D data in a nice grid
|
||
|
% [h, display_array] = DISPLAYDATA(X, example_width) displays 2D data
|
||
|
% stored in X in a nice grid. It returns the figure handle h and the
|
||
|
% displayed array if requested.
|
||
|
|
||
|
% Set example_width automatically if not passed in
|
||
|
if ~exist('example_width', 'var') || isempty(example_width)
|
||
|
example_width = round(sqrt(size(X, 2)));
|
||
|
end
|
||
|
|
||
|
% Gray Image
|
||
|
colormap(gray);
|
||
|
|
||
|
% Compute rows, cols
|
||
|
[m n] = size(X);
|
||
|
example_height = (n / example_width);
|
||
|
|
||
|
% Compute number of items to display
|
||
|
display_rows = floor(sqrt(m));
|
||
|
display_cols = ceil(m / display_rows);
|
||
|
|
||
|
% Between images padding
|
||
|
pad = 1;
|
||
|
|
||
|
% Setup blank display
|
||
|
display_array = - ones(pad + display_rows * (example_height + pad), ...
|
||
|
pad + display_cols * (example_width + pad));
|
||
|
|
||
|
% Copy each example into a patch on the display array
|
||
|
curr_ex = 1;
|
||
|
for j = 1:display_rows
|
||
|
for i = 1:display_cols
|
||
|
if curr_ex > m,
|
||
|
break;
|
||
|
end
|
||
|
% Copy the patch
|
||
|
|
||
|
% Get the max value of the patch
|
||
|
max_val = max(abs(X(curr_ex, :)));
|
||
|
display_array(pad + (j - 1) * (example_height + pad) + (1:example_height), ...
|
||
|
pad + (i - 1) * (example_width + pad) + (1:example_width)) = ...
|
||
|
reshape(X(curr_ex, :), example_height, example_width) / max_val;
|
||
|
curr_ex = curr_ex + 1;
|
||
|
end
|
||
|
if curr_ex > m,
|
||
|
break;
|
||
|
end
|
||
|
end
|
||
|
|
||
|
% Display Image
|
||
|
h = imagesc(display_array, [-1 1]);
|
||
|
|
||
|
% Do not show axis
|
||
|
axis image off
|
||
|
|
||
|
drawnow;
|
||
|
|
||
|
end
|