"r" がサイズ [N, N, M] の多次元配列で、"tab" がサイズ [N] のテーブルで、値が 1..N であるとします (たとえば、"tab=randperm(N)" とします)。次のことを行う効率的な方法を探しています。
c = ones(M, 1);
for k=1:N
c = c .* squeeze(r(tab(k),k,:));
end
prodを使用して行列表記でそれを行いたいのですが、「r(tab(1:N),1:N,:)」はN行ではなくNxNxM行列を返すため、解決策が見つかりませんでした。
助言がありますか?