2013-02-23 222 views
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 

感谢。

回答

1

find返回的指数[ii, jj]不是你认为的那样。

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

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

或者,更好的是,使用逻辑索引而不是find并做到在一个行:

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