Programming with MATLAB | ![]() ![]() |
Polynom subsrefメソッド
Polynomクラスの設計は、polynom
オブジェクトへのサブスクリプトを使ったリファレンスが、サブスクリプトに等しい独立変数値を使って多項式を計算するように設定されています。polynomオブジェクトp
に対して、
p =polynom([1 0
-2
-5])
;
は、つぎのサブスクリプトを使った表現が、x
= 3
とx = 4
での多項式の値を、つぎのように戻します。
p([3 4]) ans = 16 51
subsrefの実現の詳細
この実現は、polynomクラスの中に既に定義されているchar
メソッドを利用して、表現式を作成し、そして、その値を計算します。
function b = subsref(a,s) % SUBSREF switch s.type case '()' ind = s.subs{:}; for i = 1:length(ind) b(i) = eval(strrep(char(a),'x',num2str(ind(i)))); end otherwise error('Specify value for x as p(x)') end
多項式表現が、 char
メソッドにより作成されると、strrep
関数は、キャラクタx
に対する値に渡されたものをスワップするために使います。eval
関数は、表現式を計算し、出力引数に値を戻します。
![]() |
polynom displayメソッド | 代数演算子の多重定義 | ![]() |