Как мне векторизовать этот цикл for? - PullRequest
0 голосов
/ 16 февраля 2019

Мне нужно векторизовать этот цикл for, чтобы ускорить его, и я не уверен, как это сделать.

for k=1:n
  x2=x(k)*x(k);
  y(k) = (1-c1*x(k)+c2*x2-(x(k)/60)*x2)/...
         (1+c3*x(k)+c4*x2);
end 

1 Ответ

0 голосов
/ 16 февраля 2019

По элементам power (или умножение ) и деление - это все, что вам нужно.Я заменил ваши умножения x(k) на себя экспонентами.

y = (1 - c1*x + c2*x.^2 - x.^3/60) ./ (1 + c3*x + c4*x.^2); % assuming n = numel(x)
% if n ≠ numel(x) then replace all 'x's in above line with x(1:n)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...