exponenta event banner

cell2sym

Преобразование массива ячеек в символьный массив

Описание

пример

S = cell2sym(C) преобразует массив ячеек C в символьный массив S. Элементы C должен быть преобразован в символические объекты.

Если каждый элемент массива входных ячеек C является скаляром, то size(S) = size(C), и S(k) = sym(C(k)) для всех индексов k. Если массив ячеек C содержит нескалярные элементы, затем содержимое C должна поддерживать конкатенацию в N-мерный прямоугольник. В противном случае результаты не определены. Например, содержимое ячеек в одном столбце должно иметь одинаковое количество столбцов. Однако им не нужно иметь одинаковое количество строк. См. рисунок.

пример

S = cell2sym(C,flag) использует метод, заданный флагом для преобразования чисел с плавающей запятой в символьные числа.

Примеры

Преобразовать массив ячеек скаляров

Преобразование массива ячеек только из скалярных элементов в символьный массив.

Создайте массив ячеек из скалярных элементов.

C = {'x','y','z'; 1 2 3}
C =
  2×3 cell array
    {'x'}    {'y'}    {'z'}
    {[1]}    {[2]}    {[3]}

Преобразование массива ячеек в символьный массив.

S = cell2sym(C)
S =
[ x, y, z]
[ 1, 2, 3]

cell2sym не создает символьные переменные x, y, и z в рабочей области MATLAB ®. Доступ к элементу S, используйте круглые скобки.

S(1,1)
ans =
x

Преобразовать массив ячеек, содержащий нескалярные элементы

Преобразование массива ячеек, элементами которого являются скаляры, векторы и матрицы, в символьный массив. Такое преобразование возможно только в том случае, если содержимое массива ячеек может быть объединено в N-мерный прямоугольник.

Создайте массив ячеек, элементами которого являются скаляр, вектор строки, вектор столбца и матрица.

C = {'x' [2 3 4]; ['y'; sym(9)] [6 7 8; 10 11 12]}
C =
  2×2 cell array
    {'x'    }    {1×3 double}
    {2×1 sym}    {2×3 double}

Преобразование массива ячеек в символьный массив.

S = cell2sym(C)
S =
[ x,  2,  3,  4]
[ y,  6,  7,  8]
[ 9, 10, 11, 12]

Выбор метода преобразования для значений с плавающей запятой

При преобразовании массива ячеек, содержащего числа с плавающей запятой, можно явно указать метод преобразования.

Создание массива ячеек pi с двумя элементами: значение двойной точности константы pi и точное значение pi.

C = {pi, sym(pi)}
C =
  1×2 cell array
    {[3.1416]}    {1×1 sym}

Преобразование массива ячеек в символьный массив. По умолчанию cell2sym использует рациональный режим преобразования. Таким образом, результаты, возвращенные cell2sym без флага совпадают с результатами, возвращенными cell2sym с флагом 'r'.

S = cell2sym(C)
S =
[ pi, pi]
S = cell2sym(C,'r')
S =
[ pi, pi]

Преобразование того же массива ячеек в символьный массив с помощью флагов 'd', 'e', и 'f'. Дополнительные сведения о методах преобразования см. в разделе «Входные аргументы».

S = cell2sym(C,'d')
S =
[ 3.1415926535897931159979634685442, pi]
S = cell2sym(C,'e')
S =
[ pi - (198*eps)/359, pi]
S = cell2sym(C,'f')
S =
[ 884279719003555/281474976710656, pi]

Входные аргументы

свернуть все

Входной массив ячеек, заданный как массив ячеек. Элементы C должен быть преобразован в символические объекты.

Метод преобразования, указанный как один из символов, перечисленных в этой таблице.

'r'В рациональном режиме, cell2sym преобразует числа с плавающей запятой, полученные путем вычисления выражений формы p/q, p*pi/q, sqrt(p), 2^q, и 10^q для целых чисел скромного размера p и q в соответствующую символическую форму. Этот подход эффективно компенсирует ошибку округления, связанную с исходной оценкой, но может не точно представлять значение с плавающей запятой. Если cell2sym не может найти простую рациональную аппроксимацию, то использует ту же технику, что и с флагом 'f'.
'd'В десятичном режиме cell2sym берет количество цифр из текущей установки digits. Преобразования с менее чем 16 цифрами теряют некоторую точность, в то время как более 16 цифр могут быть не оправданы. Например, cell2sym({4/3},'d') с 10-значными возвратами точности 1.333333333, в то время как с 20-значной точностью он возвращается 1.3333333333333332593. Последний не заканчивается 3s, но это точное десятичное представление числа с плавающей запятой, ближайшего к 4/3.
'e'В режиме ошибки оценки cell2sym дополняет результат, полученный в рациональном режиме, термином, включающим переменную eps. Этот термин оценивает разницу между теоретическим рациональным выражением и его фактическим значением с плавающей запятой. Например, cell2sym({3*pi/4},'e') прибыль (3*pi)/4 - (103*eps)/249.
'f'В режиме с плавающей запятой cell2sym представляет все значения в форме N*2^e или -N*2^e, где N >= 0 и e являются целыми числами. Например, cell2sym({1/10},'f') прибыль 3602879701896397/36028797018963968. Возвращенное рациональное значение является точным значением числа с плавающей запятой, преобразованного в символьное число.

Выходные аргументы

свернуть все

Результирующий символьный массив, возвращаемый как символьный массив.

См. также

| | |

Представлен в R2016a