Main Content

cell2sym

cell 配列をシンボリック配列に変換

説明

S = cell2sym(C) は cell 配列 C をシンボリック配列 S に変換します。C の要素はシンボリック オブジェクトに変換可能でなければなりません。

入力 cell 配列 C の各要素がスカラーの場合、size(S) = size(C) であり、すべてのインデックス k について S(k) = sym(C(k)) となります。cell 配列 C に非スカラー要素が含まれる場合、C の内容は N 次元の四角形への連結に対応していなければなりません。それ以外の場合、結果は定義されません。たとえば、同じ列の cell の内容は、同じ列数でなければなりません。ただし、行数は必ずしも同じにする必要はありません。図を参照してください。

Six cell arrays concatenated into one ordinary symbolic array

S = cell2sym(C,flag) は、浮動小数点数からシンボリック数への変換において、フラグで指定された方法を使用します。

すべて折りたたむ

スカラー要素のみの cell 配列をシンボリック配列に変換します。

スカラー要素の cell 配列を作成します。

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

この cell 配列をシンボリック配列に変換します。

S = cell2sym(C)
S = 

(xyz123)

cell2sym は、シンボリック変数 xyz を MATLAB® ワークスペースに作成しません。S の要素にアクセスするには、かっこを使用します。

S(1,1)
ans = x

スカラー、ベクトルおよび行列を要素として含む cell 配列をシンボリック配列に変換します。このような変換が可能なのは、cell 配列の内容を N 次元の四角形に連結できる場合のみです。

スカラー、行ベクトル、列ベクトルおよび行列を要素として含む cell 配列を作成します。

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

この cell 配列をシンボリック配列に変換します。

S = cell2sym(C)
S = 

(x234y6789101112)

浮動小数点数が含まれる cell 配列を変換するときには、変換方法を明示的に指定できます。

定数 pi の倍精度値と厳密値 pi の 2 つの要素をもつ cell 配列 pi を作成します。

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

この cell 配列をシンボリック配列に変換します。既定では、cell2sym は有理数の変換モードを使用します。したがって、cell2sym でフラグを使用しない場合に返される結果は、cell2sym でフラグ 'r' を使用した場合に返される結果と同じになります。

S = cell2sym(C)
S = (ππ)
S = cell2sym(C,'r')
S = (ππ)

フラグ 'd''e' および 'f' を使用して、同じ cell 配列をシンボリック配列に変換します。変換方法の詳細については、入力引数の節を参照してください。

S = cell2sym(C,'d')
S = (3.1415926535897931159979634685442π)
S = cell2sym(C,'e')
S = 

(π-198eps359π)

S = cell2sym(C,'f')
S = 

(884279719003555281474976710656π)

入力引数

すべて折りたたむ

入力 cell 配列。cell 配列として指定します。C の要素はシンボリック オブジェクトに変換可能でなければなりません。

変換方法。次の表のいずれかの文字に指定します。

'r'"有理数" モードでは、cell2sym が適度なサイズの整数 pq について、p/qp*pi/qsqrt(p)2^q および 10^q の形式の式を評価して得られる浮動小数点数を、対応するシンボリック型に変換します。この方法では、本来の評価に含まれる丸め誤差を効率的に補正します。ただし、浮動小数点値を正確に表していない場合があります。cell2sym で単純な有理数に近似できない場合、フラグ 'f' を指定して使用するのと同じ手法を使用します。
'd'"小数" モードでは、cell2symdigits の現在の設定から桁数を得ます。16 桁より少ない変換では多少精度が低下します。一方、16 桁以上の桁は保証されない可能性があります。たとえば、10 桁の精度では cell2sym({4/3},'d')1.333333333 を返します。一方、20 桁の精度では 1.3333333333333332593 を返します。後者は 3 の連続で終了していませんが、4/3 に最も近い浮動小数点数の正確な小数表現です。
'e'"推定誤差" モードでは、cell2sym は有理数モードで得られた結果を変数 eps を含む項で補完します。この項は、理論上の有理式と実際の浮動小数点値との間の差を推定します。たとえば、cell2sym({3*pi/4},'e')(3*pi)/4 - (103*eps)/249 を返します。
'f'"浮動小数点" モードでは、cell2symN*2^e または -N*2^e の形式ですべての値を表します。ここで N >= 0e は整数です。たとえば、cell2sym({1/10},'f')3602879701896397/36028797018963968 を返します。返された有理数の値は、シンボリック数に変換した浮動小数点数の正確な値です。

出力引数

すべて折りたたむ

結果のシンボリック配列。シンボリック配列として返されます。

バージョン履歴

R2016a で導入