Combine matrixes with like same values
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Conner Carriere
il 11 Nov 2022
Commentato: Conner Carriere
il 21 Nov 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 Commenti
Risposta accettata
Jan
il 11 Nov 2022
Modificato: Jan
il 11 Nov 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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Performance and Memory in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!