4

すべての行が個々の観測を表すパーカンテージ値を持つマトリックスがあります。これらの値が同じ添え字に対応する累積積を計算する必要があります。関数を使用しようとしましたがaccumarray、これは正常に機能し、列ベクトルを (マトリックスではなく) 値として使用する限り、期待どおりです。値マトリックスの個々の列をループせずに問題を解決する最良の方法は何ですか?

ここに私のサンプルコードがあります:

subs = [1;1;1;2;2;2;2;2;3;3;4;4;4];
vals1 = [0.1;0.05;0.2;0.02;0.09;0.3;0.01;0.21;0.12;0.06;0.08;0.12;0.05];

% This is working as expected
result1 = accumarray(subs,vals1, [], @(x) prod(1+x) -1)


vals2 = [vals1,vals1];

% This is not working as the second input parameter of accumarray
% apperently must be a vector (rather than a matrix)
result2 = accumarray(subs, vals2, [], @(x) prod(1+x) -1)
4

2 に答える 2