Эффективная работа на блочно-диагональных матрицах в MATLAB
Я ищу эффективную реализацию следующей операции в 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
одинакового размера для всех я. Вся помощь будет оценена.