#matlab #polar-coordinates
Вопрос:
У меня есть данные, которые создают полярный график
где я хочу получить соотношение точек данных x и y (x/y) под каждым углом, затем построить соотношение (x/y) по сравнению с углом тета (0,…, 360). Каков наилучший способ достичь этого?
Комментарии:
1. Можете ли вы добавить псевдокод для воспроизведения этого полярного графика? Обычно выходные данные графика могут содержать метаданные (x,y или r и угол и т.д.) сгенерированного графика. Метаданные можно использовать для получения того, что вы ищете.
2. у вас были данные? Напишите программу, которую вы написали для создания этой фигуры, ее можно изменить, чтобы создать то, что вы хотите
3. Я не понимаю… У меня есть данные о ро и тета, я просто использую полярную диаграмму(тета,ро) для получения графика.
Ответ №1:
Если у вас есть координаты rho и тета для каждой точки данных на графике, вы можете легко получить координаты (x,y).
Предполагая, что ваши полярные координаты хранятся в двух отдельных векторах одинаковой длины, » ро » и «тета», вы можете использовать следующий код для извлечения соответствующих координат x и y:
% theta is expressed in radians x = rho .* cos(theta) ; y = rho .* sin(theta) ;
а затем вычислите соотношение следующим образом:
x_over_y = x ./ y ;
В качестве альтернативы, вы можете сделать все за один шаг, вот так:
% theta is expressed in radians x_over_y = (rho .* cos(theta)) ./ (rho .* sin(theta)) ;
Как только у вас будет x_over_y, вы сможете построить его по значениям тета:
% theta is expressed in radians plot(theta*180/pi, x_over_y) ;