EX3 Coursera机器学习中的displaydata函数

时间:2018-09-09 15:24:19

标签: octave

我面临一个问题,这是我的脚本。一些结尾或括号问题,但我已经检查了缺少的内容。

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

错误:

displayData 解析文件C:\ Users \ ALI \ displayData.m

附近的错误

语法错误

请指导,这是脚本中的错误,该脚本已被写入 当然,它必须没有错误。

1 个答案:

答案 0 :(得分:0)

您似乎已经修改了代码,并且将“省略号”运算符(即...)或应该遵循的行移动了几步,与Coursera中的原始代码进行了比较。

由于省略号运算符的点将出现在行的末尾,表示后面的行应是该行之前的延续,然后移动省略号或它下面的行将破坏代码。

例如

a = 1 + ...      % correct use of ellipsis, code continues below
    2            % treated as one line, i.e. a = 1 + 2          

vs

a = 1 +          % without ellipsis, the line is complete, and has an error
... 2            % bad use of ellipsis; also anything to the right of '...' is ignored

vs

a = 1 + ...      % ellipsis used properly so far
                 % but the empty line here makes the whole 'line' `a = 1 +` which is wrong
2                % This is a new instruction