cell2sym
cell 配列をシンボリック配列に変換
説明
は cell 配列 S
= cell2sym(C
)C
をシンボリック配列 S
に変換します。C
の要素はシンボリック オブジェクトに変換可能でなければなりません。
入力 cell 配列 C
の各要素がスカラーの場合、size(S) = size(C)
であり、すべてのインデックス k
について S(k) = sym(C(k))
となります。cell 配列 C
に非スカラー要素が含まれる場合、C
の内容は N 次元の四角形への連結に対応していなければなりません。それ以外の場合、結果は定義されません。たとえば、同じ列の cell の内容は、同じ列数でなければなりません。ただし、行数は必ずしも同じにする必要はありません。図を参照してください。
例
スカラーの cell 配列の変換
スカラー要素のみの 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 =
cell2sym
は、シンボリック変数 x
、y
、z
を MATLAB® ワークスペースに作成しません。S
の要素にアクセスするには、かっこを使用します。
S(1,1)
ans =
非スカラー要素を含む cell 配列の変換
スカラー、ベクトルおよび行列を要素として含む 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 =
浮動小数点値の変換方法の選択
浮動小数点数が含まれる 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 =
S = cell2sym(C,'e')
S =
S = cell2sym(C,'f')
S =
入力引数
C
— 入力 cell 配列
cell 配列
入力 cell 配列。cell 配列として指定します。C
の要素はシンボリック オブジェクトに変換可能でなければなりません。
flag
— 変換方法
'r'
(既定値) | 'd'
| 'e'
| 'f'
変換方法。次の表のいずれかの文字に指定します。
'r' | "有理数" モードでは、cell2sym が適度なサイズの整数 p と q について、p/q 、p*pi/q 、sqrt(p) 、2^q および 10^q の形式の式を評価して得られる浮動小数点数を、対応するシンボリック型に変換します。この方法では、本来の評価に含まれる丸め誤差を効率的に補正します。ただし、浮動小数点値を正確に表していない場合があります。cell2sym で単純な有理数に近似できない場合、フラグ 'f' を指定して使用するのと同じ手法を使用します。 |
'd' | "小数" モードでは、cell2sym は digits の現在の設定から桁数を得ます。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' | "浮動小数点" モードでは、cell2sym は N*2^e または -N*2^e の形式ですべての値を表します。ここで N >= 0 、e は整数です。たとえば、cell2sym({1/10},'f') は 3602879701896397/36028797018963968 を返します。返された有理数の値は、シンボリック数に変換した浮動小数点数の正確な値です。 |
出力引数
S
— 結果のシンボリック配列
シンボリック配列
結果のシンボリック配列。シンボリック配列として返されます。
バージョン履歴
R2016a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)