cell2sym

转换单元阵列到阵列的符号

描述

小号= cell2sym(C转换单元阵列C到符号阵列小号。的元素C必须可转换为象征性的对象。

如果输入单元阵列中的每个元素C是一个标量,然后大小(S)=尺寸(C)S(k)的符号=(C(k))的所有指数ķ。如果单元阵列C包含非标量元素,则内容C必须支持级金宝app联成一个N维的矩形。否则,结果是不确定的。例如,细胞在相同的列中的内容必须具有相同的列数。然而,他们并不需要有相同的行数。见图。

小号= cell2sym(C使用由标志转换浮点数到符号数规定的技术。

例子

标量的转换单元阵列

只转换标量元素的单元阵列的符号阵列。

创建标量元素的单元阵列。

C = { 'X', 'Y', 'Z';1 2 3}
C = 2×3单元阵列{ 'X'} { 'Y'} { 'Z'} {[1]} {[2]} {[3]}

转换此单元阵列的符号阵列。

S = cell2sym(C)
S = [X,Y,Z] [1,2,3]

cell2sym不创建符号变量Xÿž在MATLAB®工作区。要访问的元素小号,使用括号。

S(1,1)
ANS = X

转换单元阵列包含非标量元素

转换单元阵列,其元素是标量,矢量,并进入一个符号阵列矩阵。这种转换是可能的,只有在单元阵列中的内容可以被连接成一个N维的矩形。

创建一个单元阵列,所述元件,其是一个标量,一个行向量,一个列向量,和一个矩阵。

C = { 'X'[2 3 4];[ 'Y';符号(9)] [6 7 8;10 11 12]}
C = 2×2单元阵列{ 'X'} {1×3双} {2×1符号} {2×3}双

转换此单元阵列的符号阵列。

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

选择浮点值转换技术

当将含有浮点数单元阵列,可以显式地指定转换技术。

创建一个单元阵列PI与两个元素:常数的双精度值PI和精确值PI

C = {P1,符号(PI)}
C = 1×2单元阵列{[3.1416]} {1×1符号}

转换此单元阵列的符号阵列。默认情况下,cell2sym采用合理的转换模式。因此,结果被返回cell2sym没有一个标志是作为结果返回由同cell2sym'R'

S = cell2sym(C)
S = [P1,P1]
S = cell2sym(C, 'R')
S = [P1,P1]

使用标志相同的单元阵列转换成一个符号阵列'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 = [281474976710656分之884279719003555,PI]

输入参数

全部收缩

输入单元阵列,指定为单元阵列。的元素C必须可转换为象征性的对象。

转换技术,指定为在该表中列出的字符之一。

'R' 在里面合理的模式,cell2sym将由形式的计算表达式获得的浮点数P / QP * PI / QSQRT(P)2 ^ Q10 ^ Q对于适度大小的整数pq到对应的符号形式。这种方法有效地补偿了参与原评估舍入误差,但可能并不恰好代表浮点值。如果cell2sym找不到简单的有理逼近,那么它使用相同的技术,因为它会与标志使用'F'
'd' 在里面十进制模式,cell2sym需要的位数从的当前设置数字。少于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Ë是整数。例如,cell2sym({1/10}, 'F')回报36028797018963968分之3602879701896397。返回的合理值是您转换为符号数的浮点数的精确值。

输出参数

全部收缩

所得的符号阵列,返回作为符号阵列。

介绍了在R2016a