Вы ошиблись при использовании формулы Герона. Посмотрите на ссылку, которую вы разместили, которая дает вычисление для К. Между квадратными корнями должен быть продукт, а не разница:
K(i)= (sqrt((((Rs(i)+Rs(i+1))^2)-dsq(i))*(dsq(i)-(Rs(i)-Rs(i+1))^2)))/4;
Кроме того, что касается вашего второго вопроса. Я считаю, что для меня было бы лучше, если бы я явно объявлял порядок операций при использовании выражения с ":".
Для вашего цикла, используя соответствующий выбор либо
for i=(1:length(Xs))-1
или
for i=1:(length(Xs)-1)
может сократить непредвиденное поведение во время индексации. Это была проблема, как я понял из вашего поста. Если это было что-то еще, то опубликуйте текст ошибки, который выложит Матлаб, и я посмотрю на него.
В Matlab есть оператор "<". Если вы пытаетесь использовать его в стиле цикла C, эквивалентного циклу: </p>
for(iter=0;iter++,iter<2){
something();
}
Затем посмотрите синтаксис цикла Matlab.
Удачи,
Andrew