Символьный, или строковый, тип данных в MATLAB называется char. Любая строковая переменная определяется выражением, стоящим внутри символов одинарных кавычек. В приведенном выше примере аргументом функции realmax была именно строка. Каждый символ строки хранится в кодировке ASCII Unicode и занимает два байта. Допускаются строковые переменные, включающие символы кириллицы. Следует обратить внимание на различие в задании числовых векторов в MATLAB и строк. Например, конструкция x=[1 2] приведет к созданию вектора из двух чисел. В то же время синтаксически аналогичная конструкция со строковыми операндами приводит к конкатенации (объединению) строк. Для создания строковых массивов следует явно использовать функцию char и операнды указывать через запятую. Вывод строкового массива в консоли производится, как может показаться, по столбцам (хотя любой вектор в MATLAB определяется как вектор строка). Здесь проявляется ключевая особенность MATLAB – по умолчанию любой объект уже считается массивом. И любая строка в MATLAB представляет собой вектор, поэтому команда char(’ab’,’abc’) будет определять двумерный массив, причём функция char для выравнивания длины векторов самостоятельно к первому вектору добавила символ пробела. В этом можно убедиться, принудительно обратившись к элементу массива командой с(1,3), и в результате получить пустую строку. Вызов функции char с числовым аргументом возвращает символ, соответствующий заданному числу в ASCII таблице.


Пример 6. Особенности определения строковых типов в MATLAB
1 >> b=[ab abcd]
2 b =
3 ababcd
4 >> c=char(ab,abc)
5 c =
6 ab
7 abc
8 >> whos
9 Name Size Bytes Class Attributes
10
11 a 1x2 4 char
12 b 1x6 12 char
13 c 2x3 12 char
14 >> c(1,3)
15 ans =
16 >> char(67)
17 ans =
18 C