Пробелы уменьшаются до numstr () в matlab - PullRequest
2 голосов
/ 25 января 2012

Почему в Matlab, когда вы набираете оператор, такой как

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

Результат удаляет пробелы перед оператором numstr () ... т.е.

    ans = 'Transfer is23% complete'

Есть ли способ предотвратить его кражу моего пробела?

Ответы [ 2 ]

3 голосов
/ 25 января 2012

Это потому, что strcat удаляет пробелы. По doc strcat:

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

Решения:

1) Вы можете попробовать sprintf('Transfer is %d%% complete', percentage);

2) Используйте ['Transfer is ', num2str(percentage), '% complete'] вместо strcat для объединения строк.

0 голосов
/ 25 января 2012

Должно работать следующее:

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

Хотя в итоге вы получите массив из одной ячейки.Если вы объединяете отдельные строки, то вам действительно следует использовать [] вместо strcat.

Лично я бы использовал sprintf, как предложено @ grapeot.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...