Combine matrixes with like same values
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Conner Carriere
el 11 de Nov. de 2022
Comentada: Conner Carriere
el 21 de Nov. de 2022
I know this has been asked before, but im just not sure how to approach it.
I have a cell that looks
bbox
[0,241,637,168]
[204,181,382,286]
[56,314,185,243]
[0,59,574,506]
[8,58,230,546]
and another "key" cell that looks like this
1
1
2
2
3
I also have a cell that called "class"
5
11
12
9
10
I need an output like this
row bbox class
1 [0,241,637,168; 204,181,382,286] [5;11]
2 [56,314,185,243; 0,59,574,506] [12;9]
3 [8,58,230,546] [10]
Any info would help, I am sure that it uses either the unique() or accumarray() function
0 comentarios
Respuesta aceptada
Jan
el 11 de Nov. de 2022
Editada: Jan
el 11 de Nov. de 2022
bbox = {[0,241,637,168]; ...
[204,181,382,286]; ...
[56,314,185,243]; ...
[0,59,574,506]; ...
[8,58,230,546]};
key = [1, 1, 2, 2, 3];
result = splitapply(@(c) {cat(1, c{:})}, bbox, key(:))
Another option is a simple loop:
ukey = unique(key);
result = cell(numel(ukey), 1);
for k = 1:numel(ukey)
result{k} = cat(1, bbox{key == ukey(k)});
end
result
5 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Performance and Memory 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!