我正在尝试在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的元素)
那么,对此进行编程的干净方法是什么?
提前致谢!