Как вычислить только диагональ матричного произведения в Октаве?

Существует ли путь в Октаве, чтобы вычислить и сохранить только диагональ матричного произведения?

В основном как выполнение: vector = diag(A*B);

Я не забочусь ни об одном из значений A*B кроме тех, которые на диагонали. Матричные размеры вокруг 80k x 12 и 12 x 80k, таким образом, даже если я не заботился о скорости/дополнительной памяти о нем, просто привычка помещается в RAM.

Странный, так как Октава является пакетом для огромных наборов данных, и диагонали очень важны, таким образом, это должно быть возможно.

14
задан gnovice 7 May 2017 в 05:07
поделиться

3 ответа

Первый элемент диагонали - это скалярное произведение первой строки A на первый столбец B. Второй элемент диагонали - это скалярное произведение второй строки A на второй столбец B.

Другими словами:

vector = sum(A.*B',2);
19
ответ дан 1 December 2019 в 09:32
поделиться

Вот как это можно сделать в MATLAB (вероятно, аналогично синтаксису Octave):

vector = sum(A.*B',2);

Это вычислит только результирующую диагональ операции A*B как вектор-столбец vector.

9
ответ дан 1 December 2019 в 09:32
поделиться

AES сильно отличается, AES создает SPN, сеть подстановок. Он генерирует s-боксы (поля подстановки) на основе полиномиальных функций, сгенерированных во время шифрования. Он выполняет его через 10-14 раундов подстановки на уровне байтов и перестановки на уровне битов, битовая длина ключа определяет количество раундов и круглых ключей.

RSA основана на факторах больших простых чисел, которые чрезвычайно трудно вычислить, но довольно легко первоначально зашифровать.

-121--1541464-

Перетасовка Фишера-Йейтса или как она также известна как перетасовка Кнута.

-121--2338698-

На самом деле я думаю, что это скалярное произведение первой строки A с первым столбцом B... второй диагональный элемент - скалярное произведение второго ряда и второго столбца... и т.д.

0
ответ дан 1 December 2019 в 09:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: