How to solve error :Operands to the || and && operators must be convertible to logical scalar values.

1 次查看(过去 30 天)
I have a following simple program as below and I want to test the result
clc;
close all;
a=0.1:0.1:1
b=1.5:.5:5
m=6
if m>a && m>b
print('The place is good')
elseif m<a && m<b
print('The place is bad')
end
Here I want to compare the value of m with all the value of a( ie from 0.1:1) & b(1.5:5). .. Here I want the program to compare with all the values of a and b and get an output. Can somebody help and correct my problem.
Thanks
  3 个评论
s p
s p 2018-3-26
No I want to compare m with all values of a & b, not with only max value of a&b
In this case a= 0.1 0.2 0.3 0.4 ..........1
b=1.5 2 2.5 3 3. 5 ....5
now I want to compare m value with all these value and jump to the conclusion...
I know taking max works for this case but I just wanna know how to make comparison of single value (here m) with the every element of array (here a & b)
Guillaume
Guillaume 2018-3-26
I just wanna know how to make comparison of single value with the every element of array
That is trivial to do. However that gives you a vector of true and false values for each element compared. Given that, what should
if [true true false false]
disp('Am I true or false?');
else
disp('A bit of both!');
end
should display?

请先登录,再进行评论。

回答(1 个)

John Harris
John Harris 2018-3-26
These produce logical arrays.
m>a
m>b
You might be looking for the all() function, which will produce a single logical:
all(m>a)
see also the any() function

类别

Help CenterFile Exchange 中查找有关 Entering Commands 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by