Оценка функции векторизации в MATLAB - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть следующая функция,

function Vectorize()
a = randn(1,5)
b = randn(1,5)
c = zeros(1,5)
for i=1:5
c(i) = (a(i) - b(i))/(1+a(i)/2+b(i)/3)
end

Я хочу векторизовать приведенную выше оценку функции и заменить цикл for.

Я мог бы сделать c = a -b, который находит разницу между двумя векторами строк. Я не уверен, как обращаться с делением a / 2 и b / 2.

Может ли кто-нибудь помочь?

1 Ответ

0 голосов
/ 18 ноября 2018

Вам нужна операция поэлементного деления ./

c = (a - b)./(1+a/2+b/3)

Если вы делите вектор на скаляр, это не обязательно, но если вы делите массив на массив, вам придется использовать ./ в вашем случае. Смотрите здесь для других элементарных операторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...