Combine logical cell array based on 'or' condition
19 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Alex Wooten
el 21 de Mayo de 2021
Comentada: Alex Wooten
el 21 de Mayo de 2021
I am trying to combine all elements of a cell array containing multiple logical arrays into a single array, where the single array has a true value if any of the logical arrays contain true at that index.
C{1,1} = logical([1;0;0;0;0]);
C{1,2} = logical([0;1;0;0;0]);
C{1,3} = logical([0;0;1;0;0]);
I know that if I wanted to combine 2 of the elements, I could do this:
or(C{1,1}, C{1,2})
This would give me the output:
ans =
5×1 logical array
1
1
0
0
0
Is there a way to combine all 3 logical arrays and get this as output? (preferably in a single operation)
ans =
5×1 logical array
1
1
1
0
0
0 comentarios
Respuesta aceptada
DGM
el 21 de Mayo de 2021
Maybe something like this:
% test array
C{1,1} = logical([1;0;0;0;0]);
C{1,2} = logical([0;1;0;0;0]);
C{1,3} = logical([0;0;1;0;0]);
Cl = any(cell2mat(C),2)
Más respuestas (2)
Daniel Bengtson
el 21 de Mayo de 2021
You could do something like this.
C{1,1} = logical([1;0;0;0;0]);
C{1,2} = logical([0;1;0;0;0]);
C{1,3} = logical([0;0;1;0;0]);
[~,wid] = size(C);
%false vector to use as a starting point
init = false(size(C{1,1}));
%ORs together every vector in C
for i = 1:wid
init = init | C{1,i};
end
0 comentarios
Ver también
Categorías
Más información sobre Data Distribution Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!