manipulate a method contain to compare two lists

l have trouble with the code below. l want to compare two lists of elements to : 1)know wether the neighbours of j are included in k 2)know wether the set of j is equal to k
but matlab returns me an error
if (contains(neighbour_n{k}, neighbour_n{j})||(neighbour_n{j}==neighbour_n{k}));
Undefined function or method 'contains' for input arguments of type 'double'.

 Accepted Answer

contains is not a standard matlab function. You can test set membership wih ismember. it'll return a vector of [true, false] values, so if you just want a scalar, yo need to use all.
Similarly, == returns a vector of [true, false] and only works if both matrices / vectors being compared are the same size. To test that two (sorted) sets are identical you'd use |isequal
Thus,
if all(ismember(neighbour_n{j}, set_n{k})) && isequal(set_n{j}, set_n{k})
%do something

More Answers (2)

The error message tells you, that there is no function called "contains". Why do you assume that there is such a function?
Are you sure that you need the elementwise comparison "==" or would isequal be better?
it's working look here :
if (((all(ismember(neighbour_n{k}, neighbour_n{j})))||(isequal(neighbour_n{j}, neighbour_n{k})))&&(k~=j));
end

Categories

Find more on Operators and Elementary Operations 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!