Der Grund hierfür ist in strcat
's documentation:
Für Zeichenfeld-Eingänge, strcat
entfernt ASCII Leerraum Zeichen nachlauf: Raum, Tab, vertikaler Tabulator, neue Zeile, Wagenrücklauf und form Feed. Verwenden Sie zum Beibehalten nachstehender Leerzeichen beim Verketten von Zeichen Arrays die horizontale Array-Verkettung [s1, s2, ..., sN]
.
Bei Zellenfeldeingängen entfernt strcat
nicht den nachgestellten Leerraum.
So: entweder Verwendung Zellenketten (eine Zelle erzeugt eine Zeichenfolge enthält)
hi = {'hi'};
str = strcat({'Hello World '},hi)
oder ebene, bügel basierend Verkettung (eine Zeichenfolge erzeugen):
str = ['Hello World ',char(hi)]
oder verwenden Sie 'sprintf ('% s% s', str1, str2)' das ist sehr mächtig und viel schneller! :) (Und ja ein bisschen schwerer zu lesen ....) – matlabgui