How to check ismember in a cell in Matlab?

65 visualizaciones (últimos 30 días)
SM
SM el 24 de Oct. de 2019
Respondida: SM el 24 de Oct. de 2019
List={[5,2] [27,19] [13,8] [17,14] [3,13] [21,20] [6,16] [4,30] [1,13] [20,2] [14,27];
[5,2] [21,7] [29,6] [17,36] [35,12] [8,20] [35,8] [11,10] [35,23] [22,25] [9,32]};
B={[21 20]};
A=ismember(List{1,:}, B) % it will only check the row of the cell List.
result=[0 0 0 0 0 1 0 0 0 0 0]
is it possible?

Respuesta aceptada

Stephen23
Stephen23 el 24 de Oct. de 2019
>> List = {[4,5,2],[27,19],[13,8],[17,14],[3,13],[21,20],[6,16],[4,30],[1,13],[20,2],[14,27,2];[5,2],[21,7],[29,6],[17,36],[35,12],[8,20],[35,8],[11,10],[35,23],[22,25],[9,32]};
>> B = {[21,20]}; % why the superfluous cell array?
>> X = cellfun(@(m)isequal(m,B{1}),List(1,:))
X =
0 0 0 0 0 1 0 0 0 0 0

Más respuestas (2)

Andrei Bobrov
Andrei Bobrov el 24 de Oct. de 2019
result = cellfun(@(x)all(x == B{:}),List);
  1 comentario
SM
SM el 24 de Oct. de 2019
Excellent! But It must be only check the first row. Another issue is that if the first row is replaced by [4, 5,2] [27,19] [13,8] [17,14] [3,13] [21,20] [6,16] [4,30] [1,13] [20,2] [14,27,2]; then it shows error 'Matrix dimensions must agree'. Is it possible to solve now?

Iniciar sesión para comentar.


SM
SM el 24 de Oct. de 2019
Thank you! It works.

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by