当比较评估为[]
或TRUE
时,我想做一些事情。
例如,假设比较为x > 1
,其中x可以是以下两者。
x = 2
x = []
如果x > 1
提供[]
或TRUE
,我想显示“是”。
我能做到
if x <= 1
disp 'no'
else
disp 'yes'
end
但是在没有否定比较运算符的情况下,有没有直接的方法呢?
编辑回答第一个答案:我想避免使用isempty
运算符。
答案 0 :(得分:5)
您可以在比较中调用all
功能
if all(x > 1)
disp 'yes'
else
disp 'no'
end
那是因为
>> all([])
ans =
1
>> all(1)
ans =
1
您可能需要添加一条评论,说明为什么在标量比较中使用all
来代表该代码的未来读者(即使只有您自己)。
答案 1 :(得分:1)
if isempty(x) || x > 1
disp 'yes'
else
disp 'no'
end
答案 2 :(得分:1)
您需要同时测试isempty
和我们的比较,但在评论中您表明您不愿意直接为许多变量键入isempty
。这个怎么样?然后,您只需输入isempty
一次。
mycomp = @(x) isempty(x) || x>1;
if mycomp(x)
disp('yes')
else
disp('no')
end