Быстрое умножение матриц

Форум, посвященный общим вопросам, связанным с MATLAB

Модератор: Admin

tur91
Пользователь
Сообщения: 142
Зарегистрирован: Пн май 05, 2008 4:22 pm

Быстрое умножение матриц

Сообщение tur91 » Вс авг 18, 2019 1:18 pm

Есть две матрицы: матрица А размером 81х3 и матрица В размером 81х4. Нужно БЫСТРО получить матрицу С размером 81х12
Медленно умножаю так:

Код: Выделить всё

С = [];
for i = 1:81
  a = A(i,:); % 1x3
  b = B(i,:); % 1x4
  c = a'*b;   %  3x4
  С = [С; c(:)']; % в С получаем нужную матрицу
end

Есть ли возможность в данном случае избежать for-а ?

U235
Пользователь
Сообщения: 814
Зарегистрирован: Пт июл 01, 2005 10:13 am

Re: Быстрое умножение матриц

Сообщение U235 » Вт авг 20, 2019 10:37 pm

Код: Выделить всё

V=repmat(A, 1, 4);
W=repelem(B, 1, 3);
C=V.*W;

tur91
Пользователь
Сообщения: 142
Зарегистрирован: Пн май 05, 2008 4:22 pm

Re: Быстрое умножение матриц

Сообщение tur91 » Вс сен 01, 2019 3:40 pm

U235, спасибо