2012-01-05 7 views
2

Matlabで '+'、 ' - '、 '*'演算子をオーバーロードするクラスを実装しました。ここでは、このクラスのインスタンスで構成される行列の行列式を計算することに興味があります。これを行うためにMatlabのシンボリック行列式関数を使用するための怠惰な方法がありますか、または行列式アルゴリズムを自分で実装する必要がありますか?Matlabのシンボリック行列式を抽象クラスに適用する

答えて

0

クラス内にデジットと呼ばれる関数を作成できます。 セル配列ではなく配列を使用して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 
+0

私のオブジェクトが数字で変換可能な場合、これは動作します。これはそうではありません。私は一般的な行列式関数に興味があります。行列式が多項式の場合には、多項式とは異なる値を返す可能性があります。 – Igor

+0

@Igor、シンボリックツールボックスを使用しようとしましたか? –

+0

はい。私はシンボリックツールボックスの行列式関数をオブジェクトにリンクすることに興味があります。 – Igor

関連する問題