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