2016-05-13 15 views
1

entfernen halte ich diese Zeichenfolge habenwie doppelte Wörter in einem String in Matlab

a='flexray_datain_flexray_sensors' 

und ich möchte diese Zeichenfolge verarbeiten

a='flexray_datain_sensors' 

Und die Sache zu bekommen, ist dies für jeden sein kann wiederholte Wörter und nicht nur Flexray in Matlab. Wenn ich schon wissen, was das Wort ist, dann ist es leicht

Ich habe versucht:

parts = textscan(bypname , '%s', 'delimiter', '_'); 
    parts = parts{:}; 

und dann die Verarbeitung dieser Zelle (Teile) unter Verwendung der einzigartigen oder etwas und die wiederholten Worte zu entfernen. Aber ich brauche eine bessere Antwort.

+1

Wie definieren Sie ein Wort? Sind bei einem Wort alle Zeichen durch einen Bindestrich getrennt ('_')? – kkuilla

+0

nicht unbedingt kann es auch ebct2_o_ebct1 sein, und dies kann ein komplettes Wort sein @kkuilla –

+0

versuchen, 'strsplit' und' unique' zu ​​verwenden? – Dan

Antwort

3

Funktioniert das für Sie?

strjoin(unique(strsplit(a,'_'),'stable'),'_') 
+0

perfekt. Das ist, was ich gesucht habe. Viel eleganter als mein Weg –

Verwandte Themen