La ragione è in strcat
's documentation:
Per gli ingressi array di caratteri, strcat
rimuove trascinamento ASCII spazio bianco caratteri: spazio, tabulazione, tabulazione verticale, fine riga, ritorno del carrello, e avanzamento modulo. Per preservare gli spazi finali quando si concatenano gli array di caratteri , utilizzare la concatenazione di array orizzontale, [s1, s2, ..., sN]
.
Per gli input di matrice cellulare, strcat
non rimuove lo spazio bianco finale.
Quindi: o stringhe di celle utilizzo (produrrà una cella contenente una stringa)
hi = {'hi'};
str = strcat({'Hello World '},hi)
o semplice, la concatenazione staffa-based (produrrà una stringa):
str = ['Hello World ',char(hi)]
fonte
2015-04-21 15:48:30
o usare 'sprintf ('% s% s', str1, str2)', che è molto potente e molto più veloce! :) (E sì un po 'più difficile da leggere ....) – matlabgui