Я попытался создать функцию в MATLAB, которая возвращает вектор расстояний между соседними точками в списке точек (x1,y1),...,(xn,yn)
.MATLAB: Функция возвращает одно значение вместо вектора
То, что ["distance (x1,y1) to (x2,y2)", ... ,"distance (xn-1,yn-1) to (xn,yn)","distance (xn,yn) to (x1,y1)"]
.
Для этого моя идея состояла в том, чтобы работать с вектором: Оригинальный [(x1,y1),...,(xn,yn)]
и [(xn,yn),(x1,y1),...,(xn-1,yn-1)]
.
Теперь я построил эту функцию:
function erg = distVec(xy1)
n = length(xy1);
xy2 = cat(1,xy1(2:end,:),xy1(1,:));
% define snd vector
erg = [];
for j=n
erg = cat(2,erg,norm((xy1(j,:)-xy2(j,:))));
% norm(...) equals distance between two neighboring points
end
end
Но вместо вектора с расстояниями, эта функция возвращает только последний расстояние оцененного.
Что не так?
Спасибо!
MATLAB не позволяет использовать такие кортежи. В вашем коде, какой тип 'xy1' должен иметь? – Jubobs
Это матрица с x-значениями в первом столбце и значениями y в snd. – sabs