MATLAB: I want to extract data from a for loop a created instead of individually coding each vaiable, is there an easier way in MATLAB 2015b

dynamic variable namesevalevaluate expressionfor loopMATLAB

for n=(1:14)
load(['lok' num2str(n) '.mat'])
load(['lokf' num2str(n) '.mat'])
end
F1 =lok1dat(1:600,1)
F2 =lok2dat(1:600,1)
F3 =lok3dat(1:600,1)
F4 =lok4dat(1:600,1)
F5 =lok5dat(1:600,1)
F6 =lok6dat(1:600,1)
F7 =lok7dat(1:600,1)
F8 =lok8dat(1:600,1)
F9 =lok9dat(1:600,1)
F10=lok10dat(1:600,1)
F11=lok11dat(1:600,1)
F12=lok12dat(1:600,1)
F13=lok13dat(1:600,1)
F14=lok14dat(1:600,1)

Best Answer

If you know that there are 14 of them, I would use the eval function (since it doesn’t seem you can avoid it), but instead of creating individual ‘F’ variable column vectors, create one ‘F’ matrix:
for k1 = 1:14
F(:,k1) = eval(sprintf('lok%ddat(1:600,1)', k1));
end
This is UNTESTED CODE! However, it should work.