MATLAB: построение одномерных данных на двухмерном графике - PullRequest
0 голосов
/ 19 марта 2012

Я пытаюсь нанести некоторые одномерные данные на двухмерный график в MATLAB.

По сути, у меня есть выходной сигнал, и я хотел бы, чтобы вертикальные линии накладывались в соответствующих точках данных. На данный момент я рисую поверх моей уже существующей фигуры следующий код:

plot(velocityPeaks(:,1), 0, 'r.');

Это создает красную точку в точке y = 0 для каждой позиции, в которой «SpeedPeaks» содержит значение. Я бы предпочел иметь это в виде вертикальной красной линии, которая пересекает весь график. Вот мой текущий вывод:

enter image description here

Эти красные точки - на данный момент я должен использовать линейку на экране компьютера, чтобы точно понять, к чему они относятся. Не идеальное решение!

Ответы [ 3 ]

2 голосов
/ 19 марта 2012

Это должно работать:

plot(velocityPeaks(:,[1 1]) , ylim,'r-')

Это построит серию вертикальных линий в точках velocityPeaks(:,1) в пределах y, уже содержащихся на графике. Чтобы указать лимит самостоятельно, используйте, например:

plot(velocityPeaks(:,[1 1]) , [4 9],'r-')
0 голосов
/ 19 марта 2012

Это не совсем то, что вы хотели, но всякий раз, когда я делаю что-то подобное, мне нравится рисовать круги поверх исходного сигнала в местах пиков.Так что-то вроде этого (при условии, что velocity является исходной формой волны):

velocityPeakValues = velocity(velocityPeaks);
plot(velocityPeaks(:,1), velocityPeakValues(:,1), 'ro');
0 голосов
/ 19 марта 2012

Возможно, вы можете использовать data cursor icon на рисунке, а затем нажать на красные точки, чтобы получить его координаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...