Проблема связана с вашей переменной l oop:
n = 0.013888888889:0.013888888889:1
Давайте сравним:
temp = 0:0.013888888889:1;
temp([1 2 end-1 end])
n = 72;
temp = linspace(0, 1, n+1);
temp([1 2 end-1 end])
Мы получаем:
ans =
0.00000 0.01389 0.97222 0.98611
ans =
0.00000 0.01389 0.98611 1.00000
Используя ваше решение мы получаем вектор с размерами 1x72
, тогда как «более точная» версия дает вектор с размерами 1x73
. Итак, в конце концов, это проблема округления.
Оставшуюся часть можно упростить, используя repmat
и reshape
:
k = 25;
out = reshape(repmat(temp, k, 1), 1, (n+1) * k)
( Вывод здесь опущен.)
Надеюсь, это поможет!