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

2 views (last 30 days)
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 Comments
s p
s p on 26 Mar 2018
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 on 26 Mar 2018
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?

Sign in to comment.

Answers (1)

John Harris
John Harris on 26 Mar 2018
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

Categories

Find more on MATLAB Mobile Fundamentals in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!