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 Matrix Indexing 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!

