MATLAB Answers

Write a function that checks whether an element occurs in a list.

19 views (last 30 days)
Yeap Jia Wei
Yeap Jia Wei on 11 Jun 2015
Answered: Walter Roberson on 1 Aug 2021
function Checking(x)
a=([1,3,5,8,9]);
if x==a
disp('It is an element')
else
disp('Not an element')
end
end

Answers (3)

Stephen
Stephen on 12 Jun 2015
Edited: Stephen on 12 Jun 2015
Actually your code just needs the addition of any to work correctly:
function Checking(x)
a = [1,3,5,8,9];
if any(x==a)
disp('It is an element')
else
disp('Not an element')
end
end
and here it is being tested:
>> Checking(2)
Not an element
>> Checking(3)
It is an element
Read the if documentation carefully to know why this works!

Walter Roberson
Walter Roberson on 1 Aug 2021
function Checking(x)
if ismember(x, [1,3,5,8,9])
disp('It is an element')
else
disp('Not an element')
end
end

Sreeja Banerjee
Sreeja Banerjee on 12 Jun 2015
Hi Yeap,
Assuming that x is the element you want to check and a is the array, this function will not because you are comparing a 1x1 double with a 1xn double array. You need to compare each element of a with that of x.
Please look at the following code where I have used a FOR loop:
function Checking(x)
a=([1,3,5,8,9]);
for i = 1:length(a)
if x==a(i)
disp('It is an element')
else
disp('Not an element')
end
end
  1 Comment
Walter Roberson
Walter Roberson on 12 Jun 2015
Note that will say it is Not an element once for each element of "a" that it does not equal.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!