如何解决'未定义的函数或变量'

时间:2011-01-13 22:22:48

标签: matlab matrix

当我运行以下代码时,我不断收到错误'未定义的函数或变量'Test_x'。为什么我会收到此错误?

以下是我目前的情况,

for D=max(max(X))                         % Find max value                  
    if D >= 5                       % For only when at least one value >= the threshold

    sumx=conv2(X,kernel,'same');          % Compute the sum of neighbors for each pixel
    nx=conv2(double(X>0),kernel,'same');  % Compute the number of non-zero neighbors          
    avg_x=X;
    avg_x(avg_x<5)=0;                     
    index=(avg_x>=5);                     % Find logical index of pixels >=40
    avg_x(index)=sumx(index)./max(nx(index),1);  % Center or average of the nonzeros
    avg_x1=(avg_x>0);

    tmp_x=avg_x;
    maxVal=max(avg_x(:))+1;
    tmp_x(tmp_x==0)=maxVal;   % Replace all the zeros in the tmp_Z1 with a larger value
    tmp_x=imerode(tmp_x,kernel);

    Test_x=X>=tmp_x;                      % Put one wherever new_Z1(k)>=tmp_Z1(k)   
    Test=Test_x+avg_x1;                   
    Test_X=(Test>0);

   elseif D<5                             % Use when there is no value >= threshold
      Test_X=Test_x.*avg_x1;              % Give Zero matrix

   end
end

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

如果??? Undefined function or variable 'Test_x'.的初始值小于5,您的代码中会出现错误D,在这种情况下,您的代码将执行最后一行Test_X=Test_x.*avg_x1;而不先设置{ {1}}任何事情。您还必须将Test_x初始化为某个内容,否则您将获得该变量的相同错误。