Find duplicated values in a row and rename
    8 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Manuel
 el 16 de Jul. de 2013
  
    
    
    
    
    Respondida: Curtis N
      
 el 26 de En. de 2015
            I have a data array (100:500), and for the first vector(1,:) I would like to find the duplicated string values(the data in each cell is an string). For the result duplicated stings found I want to concatenate '_2'...'_n' depending on the duplicates found. I have try with the unique and histc functions but since is a vector of strings I could not achieve a good result.
I would really appreciate some help,
Thanks in advance
0 comentarios
Respuesta aceptada
  Curtis N
      
 el 26 de En. de 2015
        I'm sure you no longer need this, but as I was looking for this type of solution today, here's how I did it using A K's suggestion.
orig = {'a', 'a', 'b', 'c', 'd', 'b', 'a', 'b', 'a', 'e'}';
new = orig;
uniqStr = unique(orig);
for ii = 1:length(uniqStr)
    idx = strmatch(uniqStr{ii}, orig, 'exact');
    for jj = 2:length(idx)
        new{idx(jj)} = [orig{idx(jj)}, '_', num2str(jj)];
    end
end
compare = [orig, new]
compare = 
    'a'    'a'  
    'a'    'a_2'
    'b'    'b'  
    'c'    'c'  
    'd'    'd'  
    'b'    'b_2'
    'a'    'a_3'
    'b'    'b_3'
    'a'    'a_4'
    'e'    'e'
If somebody knows how to due this without loops, please share the solution.
0 comentarios
Más respuestas (1)
  A K
 el 16 de Jul. de 2013
        You can try using "unique" function to get a listing of all unique strings in your row vector
Next try using "strmatch" for each uniqe string found to see if they are repeated. You can try
index = strmatch('unique_string', array_of_strings, 'exact'), where index will point to the locations in array_of_strings where unique_string occurs.
Ver también
Categorías
				Más información sobre Data Type Conversion 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!