Поведение конкатенации строк Matlab с различными типами данных - PullRequest
0 голосов
/ 24 марта 2019

Я использую Matlab 2018b в Windows 10. Я понимаю, что для конкатенации строк Matlab требуются входные аргументы при конкатенации, чтобы они представляли собой массив символов, массив ячеек векторов символов или массив строк, как указано в https://de.mathworks.com/help/matlab/ref/strcat.html. Исходя из этого, я ожидал ошибку при попытке сделать следующее:

[1, 'some_string']

или

strcat(1, 'some_string')

Но я не получаю никакого сообщения об ошибке. Вместо этого получите вывод, как показано на снимке ниже:

enter image description here

Исходя из нижеприведенного, похоже, что автоматическое преобразование типов выполняется для 1 с double до char, но, похоже, что-то не так в процессе, в результате которого 1 заменяется на мусорный символ. Любое понимание этого, пожалуйста?

x = strcat(1, 'some_string');
class(x(1))

ans =

    'char' 

1 Ответ

3 голосов
/ 24 марта 2019

Matlab рассматривает 1 как код ascii, соответствующий символу start of heading, который отображается в виде квадрата, который вы видите.

Более очевидно, что делает Matlab, если вы, например, делаетеstrcat(65, 'some_string'), который возвращает Asome_string, поскольку код ascii 65 соответствует заглавной буквы A.

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