| 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メソッド | 代数演算子の多重定義 |