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

20 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)
end

Answers (1)

Dyuman Joshi
Dyuman Joshi on 28 Jan 2023
Edited: Dyuman Joshi on 28 Jan 2023
%random data
A=randi(100,1,10)
A = 1×10
41 54 69 89 78 80 72 21 24 62
B=randi(100,1,12)
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
Q=B(i)-A(i);
%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
end
axis fill

Community Treasure Hunt

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

Start Hunting!