0

私はMatlabで値の反復を実装しようとしていますが、きれいな方法で合計をプログラミングするのに問題があります.これは私が今使っているものです:

problem.transition は 92x92x5 の行列で、非ゼロ要素の量は 3 から 88 まで変化します (小さな問題については、http://pastebin.com/Ydraa83xが遷移行列です)。

s と a は、この合計を計算する関数の引数で、それぞれ 1 から 92 と 1 から 5 の範囲です。

[transI,~,transV] = find(problem.transition(:,s,a)); 

som = 0;
for s_acc = 1:numel(transV)
    som = som + transV(s_acc)*max(Q(transI(s_acc),:));    
end

これは機能しますが、もっと良い方法があると確信しています。シンボリック関数、arrayfun メソッドなどを調べて見つけましたが、理解に苦慮しています。

これが総和です (S と A はベクトル、s と a はそれぞれ S と A の要素です)。 方程式

では、これをプログラムするためのクリーンな方法は何ですか?

前もって感謝します!

4

0 に答える 0