Using 'subs' in parallel for more than one equation

1 次查看(过去 30 天)
I have 5 equations in an array: E = [E1;E2;E3;E4;E5]. Each equation is made of symbolic variables x1,y1. I now want to substitute these variables with x2,y2. Right now, I have this simple loop:
for i = 1:5
E(i) = subs(E(i),[x1,y1],[x2,y2]);
end
I was wondering if these substitutions could be carried out simultaneously for each equation, since they are independent of each other. Can I use parfor here, and if so, how should I modify my code?

回答(1 个)

Piotr Balik
Piotr Balik 2018-7-8
Repmat is one of solutions:
E = subs(E,repmat([x1 y1],5,1),repmat([x2 y2],5,1))
Where 5,1 are 5-row 1-column copies of array [x1 y1].
  1 个评论
Tejas Adsul
Tejas Adsul 2018-7-11
This worked faster than the for loop. However, I tried removing the for loop:
E = subs(E,[x1,y1],[x2,y2]);
This works faster than repmat.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品


版本

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by