if InputText == '0' || isempty(InputText)
in MATLAB is giving error:
Operands to the || and && operators must be convertible to logical scalar values.
I'm looking for an explanation for it. Isn't InputText == '0'
returning a logical value nor the other? Definitely the second is, so what's the problem with InputText == '0'
?
I have a MATLAB script and I want to ask user finish a procedure by either entering a '0' or just pressing space in it; here is the code:
if InputText == '0' || isempty(InputText)
break
end
and here is the error I get consequently:
Operands to the || and && operators must be convertible to logical scalar values.
Error in test (line 11) if InputText == '0' || isempty(InputText)
If InputText = '012'
then you can see what your first check outputs:
InputText == '0'
>>
ans = [true, false, false]
The single quotes indicate a character array, and it is treated similarly to numeric arrays for comparisons, so the output of the == '0'
operation is a comparison of each element with '0'
. This means the output is nonscalar, so you can't use it with &&
or ||
.
If you want to check "is the whole character array InputText
equivalent to '0'
?" then you should use strcmp
So your condition would be
if strcmp(InputText, '0') || isempty(InputText)
break
end