0

我的变量及其值,在if条件语句中

leftoverROI1s{1}= [11 15];

missinglabelsinimage{1}是一个空矩阵。

只有当我在语句中的两个条件都为真时,我才想执行一个for循环if,即:

if ~isempty(leftoverROI1s{1}) && ~isempty(missinglabelsinimage{1})

    for % loop for each element in non-empty `missinglabelsinimage` structure array.
        % Add a scalar to each element of non-empty `missinglabelsinimage` structure array
        ...
    end % end for loop

end % end if

我的程for_ -空' 。missinglabelsinimage{1})missinglabelsinimage{1}missinglabelsinimage{1}

我无法理解我的if状况中的错误。任何帮助,将不胜感激。

PS:我检查了上面的变量

~isempty(missinglabelsinimage{1})
ans =    
     0

~isempty(leftoverROI1s{1})
ans = 
     1

missinglabelsinimage{1}
ans =
   Empty matrix: 1-by-0
4

1 回答 1

1

我怀疑您未显示的代码中某处存在拼写错误。将您的示例简化为最基本的形式(尝试查找错误总是一个好主意):

a = [];
b = [1 2 3];
display(~isempty(a))
display(~isempty(b))

if ~isempty(a) && ~isempty(b) 
    disp('we passed the if')
else
    disp('we are in the else')
end

输出结果

ans =
     0
ans =
     1
we are in the else

完全如您所料。如果您得到不同的东西,那么您使用的代码不是您正在显示的代码......某处是否有类似(错误输入)的变量?尝试做一个clear all,然后运行一个重现您的问题的最小示例。

于 2013-08-20T22:59:44.603 回答