Call variables in for loop

32 views (last 30 days)
Rok mr
Rok mr on 22 Mar 2012
Hi to all,
L1=4 L2=3 ... L30=12
for i=1:30 P(:,i)=sprintf(L%1d,i) - sprintf(L%1d,i+1) end
The result should be P(1)=L1-L2, P(2)=L2-L3, P(3)=L3-L4, P(4)=L4-L5 but it's not :) What should I use instead sprintf?
Thank you for you answers!!!

Accepted Answer

Kevin Holst
Kevin Holst on 22 Mar 2012
To do this like you're attempting requires the use of the eval function, but be very careful in its use. Google 'eval matlab' for more information on why. And actually, the way you've got it set up wouldn't work. Your for loop needs to run from 1:29 because there's no L31.
for i = 1:29
eval(['P(' num2str(i) ')=L' num2str(i) '-L' num2str(i+1) ';'])
Is there any reason why your L variables aren't in a single L vector?
Oleg Komarov
Oleg Komarov on 22 Mar 2012
Should have concealed it better...

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by