0

我在这篇文章的底部列出了一个函数,它应该返回一个矩阵,该矩阵的大小与一个矩阵的大小相同,x其中像素的隶属度y=1 到1,其他像素到0

但是,当我运行该函数时,我没有得到如下预期的结果(为什么会这样?):

    >> x = [1 4 3; 6 4 3; 6 9 3; 2 4 3; 5 4 0; 5 3 1; 6 4 7];
    >> y = [0 0 1; 1 1 0; 1 1 0; 0 1 1; 0.2 0.8 0.54; 1 1 1; 0 0 0];

>> pixel_val(x,y)

ans =

     0     0     0
     0     0     0
     0     0     0
     0     0     0
     0     0     0
     1     1     1
     0     0     0



        function c = pixel_val(x, y)
        [ii,jj]=find(y==1); 
        x(ii,jj)=1; 
        [ii2,jj2] = find (y~=1); 
        x(ii2,jj2)=0;   
        c = x;
        end

谢谢。

4

1 回答 1

1

[ii, jj]返回的索引find不是您认为的那样。

您实际上不需要两个输出参数。试试这个

ii      = find(y==1); 
x(ii)   = 1; 
ii      = find(y~=1); 
x(ii)   = 0; 

或者,更好的是,使用逻辑索引而不是find在一行中完成:

x(y==1) = 1;
x(y~=1) = 0;
于 2013-02-23T18:30:02.320 回答