2
Matlabで '+'、 ' - '、 '*'演算子をオーバーロードするクラスを実装しました。ここでは、このクラスのインスタンスで構成される行列の行列式を計算することに興味があります。これを行うためにMatlabのシンボリック行列式関数を使用するための怠惰な方法がありますか、または行列式アルゴリズムを自分で実装する必要がありますか?Matlabのシンボリック行列式を抽象クラスに適用する
Matlabで '+'、 ' - '、 '*'演算子をオーバーロードするクラスを実装しました。ここでは、このクラスのインスタンスで構成される行列の行列式を計算することに興味があります。これを行うためにMatlabのシンボリック行列式関数を使用するための怠惰な方法がありますか、または行列式アルゴリズムを自分で実装する必要がありますか?Matlabのシンボリック行列式を抽象クラスに適用する
クラス内にデジットと呼ばれる関数を作成できます。 セル配列ではなく配列を使用してMatlab OOPを使用している場合は、インスタンスの行列に対してdet(M)を呼び出すことができます。
class MyClass
methods(Access=public)
function d = det(this)
M = zeros(size(this));
for i=1:size(this,1)
for j=1:size(this,2)
% M(i,j) = %TODO -> convert by your own logic
end
end
d = det(M);
end
end
end
私のオブジェクトが数字で変換可能な場合、これは動作します。これはそうではありません。私は一般的な行列式関数に興味があります。行列式が多項式の場合には、多項式とは異なる値を返す可能性があります。 – Igor
@Igor、シンボリックツールボックスを使用しようとしましたか? –
はい。私はシンボリックツールボックスの行列式関数をオブジェクトにリンクすることに興味があります。 – Igor