У меня есть следующий код:Как векторизовать векторно-матричную поэтапную операцию?
A = rand(N1,N2);
b = rand(1,N1);
B = zeros(N1,N2);
for i=1:N1
for j=1:N2
B(i,j) = A(i,j)*b(i);
end
end
Вопрос заключается в том, чтобы записать его в векторной форме операции? Что-то вроде B(:,:) = A(:,:).*b(:)
.
Поскольку все переменные являются нулями, в чем смысл? просто 'B = нули (N1, N2);' достаточно – bla
Ваш внутренний цикл тривиально удален. Векторизация внешнего цикла - это то, что поддерживает Octave, но MATLAB этого не делает, хотя, как указано ниже, 'bsxfun' может быть быстрее, чем один явный цикл, и, конечно же, должен быть быстрее, чем вложенные явные циклы, которые вы указали выше. – user57368
@ natan Я почти уверен, что OP поставил их там просто, чтобы проиллюстрировать размеры. У тебя наверняка есть какая-то вера в человека! – paddy