2017-01-01 49 views
1

我有下面的代碼行:我可以添加零檢查,以這條線

stitched(1+offset(2):h1+offset(2),1+offset(1):w1+offset(1),:) = double(I1(1:h1,1:w1,:)); 

我如何可以改變它,所以它會採取價值double(I1(1:h1,1:w1,:))僅適用於爲零的細胞stitched

我已經有一些數據在stitched我想保留。

回答

1

這種變化應該對其進行設置:

stitched(1+offset(2):h1+offset(2),1+offset(1):w1+offset(1),:) = ... 
    stitched(1+offset(2):h1+offset(2),1+offset(1):w1+offset(1),:) + ... 
    double(I1(1:h1,1:w1,:)).*(stitched(1+offset(2):h1+offset(2),1+offset(1):w1+offset(1),:)==0); 

說明:

讓音符stitchedS
I1I,並
1+offset(2):h1+offset(2),1+offset(1):w1+offset(1)a:b,c:d

所以我們得到:

S(a:b,c:d,:) = S(a:b,c:d,:) + I(a:b,c:d,:).*(S(a:b,c:d,:)==0) 

現在,它更清晰,如果S(a:b,c:d,:)值不0,然後

I(a:b,c:d,:).*(S(a:b,c:d,:)==0) = 0 

,整個語句變成:

S(a:b,c:d,:) = S(a:b,c:d,:) + 0 % <-- No change 

否則,S(a:b,c:d,:)爲零,聲明變爲:

S(a:b,c:d,:) = 0 + I(a:b,c:d,:).* 1 % <-- the value in I 

您可能需要施放聲明的某些部分,但它應該起作用。

相關問題