How do i plot many short horizontal lines when a value is available?

14 views (last 30 days)
So I have a signal X of length N. Now I have 2 vectores A and B which are time instants on the signal X. i calculate some quotient based on the differences between A and B and store in Q. I want to plot Q on the Y-axis, and x- axis will have the time axis of the signal. Now for every location on the signal where I do some Bi-Ai, I want to draw a horizontal line (horizontal marker), and its y value will correspond to the element in Q.
Can someone please help me or give me an idea?
X % some signal
A= 100x1; %selected time instants on X
B= 120x1; %selected time instants on X
N= max([length(A) length(B)])
for i=1:N
Q(i)= B(i)-A(i)

Answers (1)

Dyuman Joshi
Dyuman Joshi on 28 Jan 2023
Edited: Dyuman Joshi on 28 Jan 2023
%random data
A = 1×10
41 54 69 89 78 80 72 21 24 62
B = 1×12
63 63 76 23 28 90 52 86 22 16 41 58
%You can not use max, because A has less elements than B elements
N=min([numel(A) numel(B)]);
for i=1:N
%two x coordinates (different values, start and end point, order doesn't matter)
%two y coordinates (same value)
plot([A(i) B(i)],[Q Q])
hold on
axis fill


Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by