Преобразование символов и строк
- int2str(X) – округляет элементы массива X до целых чисел и возвращает массив символов, содержащих символьные представления округленных целых чисел. Аргумент X может быть скаляром, вектором или матрицей.
Пример:
>
>
X
=
magic(
3
)
X
=
8
1
6
3
5
7
4
9
2
X
=
X
+
0.05
X
=
8.0500
1.0500
6.0500
3.0500
5.0500
7.0500
4.0500
9.0500
2.0500
>
>
str
=
int2str(X)
str
=
8
1
6
357
492
- mat2str(A) – преобразует матрицу А в единую строку; если элемент матрицы не скаляр, то он заменяется на [ ], при этом учитываются 15 знаков после десятичной точки;
- mat2str(A,n) – преобразует матрицу А в строку, используя точность до n цифр после десятичной точки. Функция eval(str) осуществляет обратное преобразование.
Пример:
>
>
rand(
'state'
);
>
>
A
=
rand(
4.3
)
A
=
0.9501
0.8913
0.8214
0.2311
0.7621
0.4447
0.6068
0.4565
0.6154
0.4860
0.0185
0.7919
>
>
str
=
mat2str(A,
2
)
str
=
[
0.95
0.89
0.82
:
0.23
0.76
0.44
:
0.61
0.46
0.62
:
0.49
0.019
0.79
]
- num2str(A) – выполняет преобразование массива А в строку символов str с точностью до четырех десятичных разрядов и экспоненциальным представлением, если требуется. Обычно используется при выводе графиков совместно с title, xlabel .ylabel или text;
- num2str(A,precision) – выполняет преобразование массива А в строку символов str с максимальной точностью, определенной аргументом precision. Аргумент precision определяет число разрядов в выходной строке;
- num2str(A,format) – выполняет преобразование массива чисел А, используя заданный формат format. По умолчанию принимается формат, который использует четыре разряда после десятичной точки для чисел с фиксированной или плавающей точкой.
Пример:
>
>
str
=
num2str(pi.
7
)
str
=
3.141593
>
>
rand(state):
>
>
A
=
rand(
3.5
)
A
=
0.9501
0.4860
0.4565
0.4447
0.9218
0.2311
0.8913
0.0185
0.6154
0.7382
0.6068
0.7621
0.8214
0.7919
0.1763
>
>
str
=
num2str(A,
1
)
str
=
1
0.5
0.5
0.4
0.9
0.20.9
0.02
0.6
0.7
0.60.8
0.8
0.8
0.2
- str2double('str') – выполняет преобразование численной строки s, которая представлена в ASCII-символах, в число с двойной точностью. При этом + и – могут быть только в начале строки.
Пример:
>
>
x
=
str2double(
'5.45+2.67'
)
5.4500
+
2.67001
Обратите особое внимание на последнюю функцию, поскольку именно она в MATLAB 6 обычно обеспечивает переход от символьного представления математических выражений к их вычисленным численным значениям;
- str2num(s) – выполняет преобразование численного массива символов – матрицы или строки s, который представлен в ASCII-символах, в матрицу (массив размерности 2).
Пример:
>
>
x
=
str2num(
'5.45+2.67'
)
8.1200
Обратите особое внимание, что при этом можно вводить знаки + и – в любом месте строки. Предыдущая функция выдала бы NaN. Но фирма MathWorks рекомендует использовать str2num с осторожностью и по возможности заменять ее на str2double.