У меня есть две матрицы, а 2000 - 20000, b - 2000 на 20000. Я хочу получить диагональные элементы a'*b
. Я использовал diag(a'*b)
, но он очень медленный (около 20 секунд), так как вычисление недиагональных элементов требует времени. Мне интересно, есть ли более быстрые способы сделать это.Matlab эффективно принимает диагональные значения матричного продукта
Я заметил, что люди делают что-то вроде sum((T*H).*T',2)
, вот link. Но требуется, чтобы T была квадратной матрицей. Как насчет не квадратной матрицы в моем случае?
Благодаря
завершить матрицы с нулями на площади? – percusse