Разобрать вектор углов с частями, разделенными NaN
unwrapped = unwrapMultipart(p)
unwrapped = unwrapMultipart(p,angleUnit)
unwrapped = unwrapMultipart(p) разворачивает вектор строки или столбца азимутов, долгот или фазовых углов. Входным и выходным блоками являются радианы. Если p разделяется на множество частей, ограниченных значениями NaN, каждая часть развертывается независимо. Если p имеет только одну часть, результат эквивалентен unwrap(p). Выходной сигнал имеет тот же размер, что и входной сигнал, и имеет NaNs в тех же местах.
unwrapped = unwrapMultipart(p,angleUnit) разворачивает вектор строки или столбца азимутов, долгот или фазовых углов, где angleUnit определяет единицу измерения, используемую для углов ввода и вывода: 'degrees' или 'radians'.
Сравнение поведения unwrapMultipart к таковому unwrap. Выходные данные unwrapMultipart начинается снова в 6.11 после NaN, в отличие от выхода unwrap. Выходные данные unwrapMultipart эквивалентно конкатенации (с NaN-разделителем) отдельных вызовов unwrap:
p1 = [0.17 5.67 4.89 4.10];
p2 = [6.11 1.05 2.27];
unwrap([p1 NaN p2])
ans =
0.1700 -0.6132 -1.3932 -2.1832 NaN -0.1732 1.0500 2.2700
unwrapMultipart([p1 NaN p2])
ans =
0.1700 -0.6132 -1.3932 -2.1832 NaN 6.1100 7.3332 8.5532
[unwrap(p1) NaN unwrap(p2)]
ans =
0.1700 -0.6132 -1.3932 -2.1832 NaN 6.1100 7.3332 8.5532
Оборачивайте два оборота сферы на δ с wrapToPi, а затем разомкните его с помощью unwrapMultipart:
lon = wrapToPi(deg2rad(0:10:720)); unwrappedlon = unwrapMultipart(lon); figure; hold on plot(lon,'--') plot(unwrappedlon) xlabel 'Point Number' ylabel 'Longitude in radians'
