2012-01-25 17 views
2

はなぜMathWorks社のMATLABである、ということは、あなたがすなわち... numstr()演算子の前に空白は

をなど

percentage =22 
    strcat('Transfer is ', num2str(percentage), '% complete'); 

結果は空白を削除する文を入力すると、MATLABでnumstr()の前にelliminated

ans = 'Transfer is23% complete' 

空白を盗むのを防ぐ方法はありますか?

+0

[Matlab strcatのスペースの問題の重複]の重複(http://stackoverflow.com/questions/1425226/matlab-strcat-function-troubles-with-spaces) – gnovice

答えて

3

これは、strcatが空白を削除するためです。

For character array inputs, strcat removes trailing ASCII white-space characters: space, tab, vertical tab, newline, carriage return, and form-feed.

ソリューション:doc strcatによると

1)あなたは、文字列の連結のために['Transfer is ', num2str(percentage), '% complete']ではなくstrcatを使用してください)sprintf('Transfer is %d%% complete', percentage);

2を試してください。

0

次は動作するはずです:

strcat({'Transfer is '}, num2str(percentage), {'% complete'}); 

あなたはシングルトンセル配列になってしまいますが。単一の文字列を連結する場合は、実際にstrcatではなく[]を使用する必要があります。

個人的には、私はsprintfを@grapeotの提案として使用します。