Ваша проблема в том, что после первых 3 итераций head = 11 ближе к -1, чем к 60. Замените -1 на %nan
(не число), и в результате это значение никогда не будет принято как ближе всего к текущей голове. Более того, используя вектор вместо списка, вы можете удалить внутренний l oop my, используя max
clear
l = [176,60,79,92,114,11,34,41];
head = 50;
seek = 0;
for j = 1:8
[step,im] = min(abs(head - l));
seek = seek + step;
head = l(im);
mprintf('Head is at %i and seek is %i\n',head,seek);
l(im) = %nan;
h(j) = head
se(j) = seek
end
clf
handle = plot(h,se)
scatter(h,se)
. Вы получите следующий вывод:
Head is at 41 and seek is 9
Head is at 34 and seek is 16
Head is at 11 and seek is 39
Head is at 60 and seek is 88
Head is at 79 and seek is 107
Head is at 92 and seek is 120
Head is at 114 and seek is 142
Head is at 176 and seek is 204
![enter image description here](https://i.stack.imgur.com/MCCMG.png)