Why looping just save the last value, not every loop ?

12 views (last 30 days)
gugum gumbira
gugum gumbira on 14 Apr 2016
Commented: gugum gumbira on 15 Apr 2016
Dear all, I have .TXT data with name ZA000060.TXT, ZA000120.TXT, ZA000180.TXT, ZA000240.TXT, ZA000300.TXT. I load those data with these syntax
for k=60:60:300
aa = sprintf('%03d',k);
filename = sprintf('ZA000%03d.TXT', k);
ZA{k}=load(filename);
end
for k = 1:length(ZA)
x(:) = ZA{k};
% do stuff with x
end
but why the result just store the last data on ZA{k} ? not every data store after looping. how to fix this ?? any help would be great. Best regard,

Accepted Answer

Stephen23
Stephen23 on 14 Apr 2016
Edited: Stephen23 on 15 Apr 2016
Try using a separate vector to store the values:
V = 60:60:300;
C = cell(size(V));
for k = 1:numel(V)
filename = sprintf('ZA000%03d.TXT', V(k));
C{k} = load(filename);
end
The original answer used the values of V directly as indices into the cell array, which produced lots of empty cells because only every sixtieth cell had something in it. This is not a good way to code, and it is not a very robust solution to use data values as indices.
  5 Comments

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!