Using 'subs' in parallel for more than one equation

1 view (last 30 days)
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?

Answers (1)

Piotr Balik
Piotr Balik on 8 Jul 2018
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 Comment
Tejas Adsul
Tejas Adsul on 11 Jul 2018
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.

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!