Проблема векторизации - PullRequest
1 голос
/ 13 января 2020

Допустим, у вас есть два вектора столбцов vv и ww, каждый из которых содержит 7 элементов (т.е. они имеют размеры 7x1). Рассмотрим следующий код:

z = 0;
for i = 1:7
  z = z + v(i) * w(i)
end

A) z = sum (v. * W);

B) z = w '* v;

C) z = v * w;

D) z = w * v;

Согласно решениям, ответы (A) И (B) являются правильными, может кто-нибудь помочь мне понять, почему?

Почему z = v * w ', который аналогичен ответу (B), но изменяется только порядок операции, является ложным? Поскольку нам нужен вектор, который по определению имеет только один столбец, не нужна ли нам матрица такого размера: 1x7 * 7x1 = 1x1? Так почему же z = v '* w ложно? Это дает то же измерение, что и ответ (B)?

Ответы [ 2 ]

1 голос
/ 13 января 2020

Ответы A и B дают точечное произведение двух векторов, что дает тот же результат, что и указанный код. Ответ Сначала выполняется поэлементное произведение (. *) Двух векторов столбцов, затем суммируются эти промежуточные значения. Ответ B выполняет ту же математическую операцию, но делает это с помощью точечного произведения (т. Е. Умножения матриц).

Ответ C является неправильным, поскольку он будет выполнять умножение матриц на смещенных матрицах (7x1 и 7x1). То же самое верно для D.

z = v * w', который не был одним из вариантов, неверен, потому что он даст матрицу 7x7 (вместо желаемого скалярного значения 1x1). Дело в том, что порядок имеет значение при выполнении умножения матриц. (1xN)X(Nx1) -> (1x1), тогда как (Nx1)X(1xN) -> (NxN).

z = v' * w на самом деле является правильным решением, но его просто не предоставили в качестве одного из вариантов.

1 голос
/ 13 января 2020

z = v'*w истинно и равно w'*v.

Они оба составляют матрицу 1 * 1, которая является числовым значением в октаве.

См.

octave:5> v = rand(7, 1);
octave:6> w = rand(7, 1);
octave:7> v'*w
ans =  1.3110
octave:8> w'*v
ans =  1.3110
octave:9> sum(v.*w)
ans =  1.3110
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...