2017-04-04 6 views
0

Ich habe verschiedene Klassenetiketten, für verschiedene Fälle. Ich möchte die Klassenbezeichnungen für alle Fälle in einem Vektor verketten. Die Klassenbezeichnungen haben unterschiedliche Größe und sie haben Char-Typ.Verkettung Klasse Etiketten mit unterschiedlicher Größe

zum Beispiel ich habe Fällen jeweils Klasse Etiketten und Klasse-Etiketten sind: a, ab, cd, fgh, khgld. wie kann ich das machen? (Ich brauche es in jedem Fall vetroized werden und schließlich für alle Fälle vektorisiert. So ist es 50 * 1 sein (ist es möglich, nur 1 Spalte im Gegensatz zu untersch Größe von Etikett haben))

wegen Mit verschiedenen Größen ist die Konkatation unmöglich, ich benutzte auch die Zelle, aber das Ergebnis war nicht korrekt.

Vielen Dank im Voraus

+0

was ist Ihre erwartete Ausgabe? tut 'C = {'a', 'ab', 'cd', 'fgh', 'khgld'};' => 'S = string (C); hilft dir? – user2999345

+0

Ja, ich denke schon. Danke für Ihren Vorschlag. Und eine Frage, weil Klassenbezeichnungen nicht die gleiche Länge haben, haben wir bei dieser Methode die Etiketten mit der größten Länge. In diesem Beispiel sind sie in diesem Format: ['a', 'ab', 'cd', 'fgh', 'khgld']. Ich denke, das wird einige Probleme machen? Habe ich Recht? (Ich meine, weil zum Beispiel ein ist ein charcater, diese Funktion fügt 4 weitere Leerzeichen, bis wir die gleiche Länge wie andere haben) – reo1

+0

Sorry, ich verstehe nicht, was Sie fragen – user2999345

Antwort

0

habe ich Leerzeichen jede Saite, die kürzer als die längste ist:

c = {'sas','as','tttttt'}; 
s = max(cellfun('size',c,2)); 
c = cellfun(@(str) [str,repmat(' ',[1 s - numel(str)])],c,'UniformOutput',0); 
m = cell2mat(c') 
Verwandte Themen