I am unable to store values for every iteration, values are overwritten in each iteration.
Info
This question is closed. Reopen it to edit or answer.
Show older comments
for p = 4:4:population
routes = pop(rand_pair(p-3:p),:);
dists = total_dist(rand_pair(p-3:p));
[~,idx] = min(dists);
best_of_4_route = routes(idx,:);
ins_pts = sort(ceil(n*rand(1,2)));
I = ins_pts(1);
J = ins_pts(2);
for k = 1:4
tmp_pop(k,:) = best_of_4_route;
switch k
case 2
tmp_pop(k,I:J) = fliplr(tmp_pop(k,I:J));
case 3
tmp_pop(k,[I J]) = tmp_pop(k,[J I]);
case 4
tmp_pop(k,I:J) = tmp_pop(k,[I+1:J I]);
otherwise
end
display(best_of_4_route);
display(d);
% diary on
a_str = sprintf('%e\t',d);
fid = fopen('newfile.txt','w');
fprintf(fid, '%s', a_str);
fclose(fid);
new_pop(p-3:p,:) = tmp_pop;
end
I want to store value of 'best_of_4_route', 'd' for every iteration. The code I have written only overwrite.
Answers (1)
Mahdi
on 18 Apr 2013
This is only one of many ways (I would suggest pre-locating but I need more of the code) *Before *the for loop, add this line:
best_of_4_route=[];
And change your the line inside the for loop to
best_of_4_route =[best_of_4_route; routes(idx,:)];
Similar logic for d.
4 Comments
Mahdi
on 18 Apr 2013
This stores all of the data in a matrix where the row corresponds to the loop.
Sanuj Shukla
on 18 Apr 2013
Edited: Sanuj Shukla
on 18 Apr 2013
Mahdi
on 18 Apr 2013
I meant the first for loop. Try this:
best_of_4_route=[]
for p = 4:4:population
routes = pop(rand_pair(p-3:p),:);
dists = total_dist(rand_pair(p-3:p));
[~,idx] = min(dists);
best_of_4_route = [best_of_4_route; routes(idx,:)];
ins_pts = sort(ceil(n*rand(1,2)));
I = ins_pts(1);
J = ins_pts(2);
for k = 1:4
tmp_pop(k,:) = best_of_4_route;
switch k
case 2
tmp_pop(k,I:J) = fliplr(tmp_pop(k,I:J));
case 3
tmp_pop(k,[I J]) = tmp_pop(k,[J I]);
case 4
tmp_pop(k,I:J) = tmp_pop(k,[I+1:J I]);
otherwise
end
display(best_of_4_route);
display(d);
% diary on
a_str = sprintf('%e\t',d);
fid = fopen('newfile.txt','w');
fprintf(fid, '%s', a_str);
fclose(fid);
new_pop(p-3:p,:) = tmp_pop;
end
end
Sanuj Shukla
on 19 Apr 2013
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!