2013-02-23 182 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;