cell2sym

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

Синтаксис

S = cell2sym(C)
S = cell2sym(C,flag)

Описание

пример

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]

Выберите Conversion Technique for Floating-Point Values

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

Создайте массив ячеек 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'. Смотрите раздел Input Arguments для получения дополнительной информации о методах преобразования.

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. Последний не заканчивает в 3 s, но это - точное десятичное представление числа с плавающей запятой, самого близкого к 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