Matlab имеет слабую динамическую типизацию, что и вызывает такое странное поведение. Чего я не понимаю, так это того, что именно происходит, так как этот результат меня очень удивляет.
Изменить: Чтобы уточнить, то, что я описываю, явно является результатом того, что Matlab хранит символы в формате ASCII, что также упоминалось в комментариях. Меня больше интересует, как Matlab обрабатывает свои переменные, и, в частности, как и когда он присваивает значениям тип/тег.
Спасибо.
'1'
представляет собой матрицу символов 1 на 1 в Matlab и
'123'
представляет собой матрицу символов 1 на 3.
Как и ожидалось,
1
возвращает двойное значение 1 на 1.
Теперь, если я войду
'1' + 1
Я получаю 50 как удвоение 1 на 1, и если я ввожу
'123' + 1
Я получаю двойной 1 на 3
[ 50 51 52 ]
Кроме того, если я наберу
'a' + 1
результат
98
в дубле 1 на 1.
Я предполагаю, что это связано с тем, как Matlab хранит переменные char в форме ascii, но как именно он их обрабатывает? Действительно ли данные объединены и помечены, или как это работает?
Спасибо.