Недавно я узнал, как векторизовать «простой» вложенный цикл в предыдущем вопрос, который я задал. Однако теперь я пытаюсь также векторизовать следующий цикл
A=rand(80,80,10,6,8,8);
I=rand(size(A1,3),1);
C=rand(size(A1,4),1);
B=rand(size(A1,5),1);
for i=1:numel(I)
for v=1:numel(C)
for j=1:numel(B)
for k=1:j
A(:,:,i,v,j,k)= A(:,:,i,v,j,k)*I(i)*C(v)*B(j)*((k-1>0)+1);
end
end
end
end
Итак, теперь k зависит от j... Что я пробовал до сих пор: комбинация терминов j и k (т.е. B(j)*((k-1>0)+1) дает треугольную матрицу, которую мне удается векторизовать независимо:
B2=tril([ones(8,1)*B']');
B2(2:end,2:end)=2*B2(2:end,2:end);
Но это дает мне матрицу (j,k) правильно, а не способ использовать ее для векторизации оставшегося цикла. Может быть, я тоже на неправильном пути... Итак, как я могу векторизовать этот тип петли?