Я ищу эффективную реализацию следующей операции в MATLAB.
Предположим, что есть A = blkdiag(A_1,...,A_i,...,A_n)
и B = blkdiag(B_1,...,B_i,...,B_n)
.Предположим, что есть некоторая функция из двух блоков f(A_i,B_i)
и выходной переменной F = blkdiag(f(A_1,B_1),...,f(A_i,B_i),...,f(A_n,B_n))
.Поэтому я прошу вашей помощи о том, как выполнить эту задачу без использования циклов.
В моем случае f(A_i,B_i) = U'*kron(A_i,B_i)*U'
для некоторой матрицы U
и n
составляет около 100. Блоки A_i
и B_i
имеют одинаковый размер для всех я.Будем благодарны за любую помощь.