2017-05-03 5 views
0

Ich versuche, Zeichenfolgen in einem Zell-Array mit Repmat in Matlab verketten.So verketten Sie Zeichenfolgen in einem Zellen-Array in Matlab

Was ich tun möchte, ist so etwas wie:

aa={'xx','yy',repmat({'zz'},1,3)} 

mit dem Ergebnis entspricht:

aa={'xx','yy','zz','zz','zz'} 

, sondern ist das Ergebnis:

{'xx','yy', {1x3 cell array} } 

Mir ist klar, dass, wenn Ich hatte eine Variable wie C=repmat('zz',1,3) dann könnte ich

tun

aber das Problem ist, ich möchte keine anderen Variablen wie C definieren. Ich möchte dies in Zeile, wenn möglich tun. Irgendwelche Ideen?

Antwort

2

Verwendung Vektor-Verkettung:

aa=[{'xx','yy'},repmat({'zz'},1,3)] 

aa = 
    1×5 cell array 

    'xx' 'yy' 'zz' 'zz' 'zz' 
+0

Gut. Das funktioniert, aber gibt es keine Möglichkeit, dies mit einer Funktion auf Repmat zu tun? Was ich mir erhofft habe, ist eine Funktion, die ein Zellenarray übernimmt und es in eine kommagetrennte Liste umwandelt, d. H. Das C {:} - Verhalten reproduziert. Zum Beispiel: colonoperator (repmat ({'zz'}, 1,3)), der eine kommagetrennte Liste ausgibt. –

+0

@BenBarrowes Sie können ehrlich nicht. Warum sind Sie gegen temporäre Variablen? – rayryeng

+0

macht 'reshape ([{'xx', 'yy'}, repmat ({'zz'}, 1,3)], [], 1)' Arbeit für dich? – user2999345

Verwandte Themen