我可以在此行添加零检查

时间:2017-01-01 18:00:47

标签: matlab

我有以下代码行:

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,:))中{0}的单元格的值为stitched

我想在stitched中保留一些数据。

1 个答案:

答案 0 :(得分: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);

<强>解释

stitched注释为S
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

您可能需要转换语句的某些部分,但它应该有效。