how to plot a signal in the time domain?

6 Ansichten (letzte 30 Tage)
Matthew Worker
Matthew Worker am 18 Feb. 2023
Kommentiert: Matthew Worker am 18 Feb. 2023
Hello,
I want to use the vector T containing the time values and the vector av containing the mean values of measurements, in order to create a plot of the signal. However, when I use plot(T,av) (knowing that they have the same length), i get a plot like this with intersected segments:
and when i use the function sort i don't quite have the shape of a signal either:
Any other methods to do it?
Thank you for your help.

Akzeptierte Antwort

Sulaymon Eshkabilov
Sulaymon Eshkabilov am 18 Feb. 2023
This issue is related to the order of the data series that can be solved using sort() fcn. See this example:
x = [7 -1 3 5 -2 8 9 0]; % Note the order of x is chaos
y = [10 15 16 12 13 17 23 24];
figure(1)
plot(x,y, 'ro-'), grid on
xlabel('x')
ylabel('y(x)')
%% DATA sorted according to x values in the ascedning order
[Xs, Idx]=sort(x, 'ascend');
Ys = y(Idx);
figure(2)
plot(Xs, Ys, 'bd-', 'linewidth', 2)
grid on
xlabel('x')
ylabel('y(x)')
  2 Kommentare
Matthew Worker
Matthew Worker am 18 Feb. 2023
Thank you for your answer, but I still get the curve like in the last picture in the description, is it just linked to my data?
Sulaymon Eshkabilov
Sulaymon Eshkabilov am 18 Feb. 2023
Most welcome. Figure 1 is showing the unsorted (raw) data vs. Figure 2 is showing the sorted data.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

John D'Errico
John D'Errico am 18 Feb. 2023
Nope. No other methods. Plot will plot what you give it.
A common mistake made is to not understand that a vector of numbers is just a list of numbers. Without any understanding of what they represent, you have just a list of random numbers. Numbers by themselves have no intrinsic meaning.
So, first, you need to talk to the person who provided those numbers. Make sure you understand what is in there, what the numbers represent.
It may welll be that you have some data that was sampled in time repeatedly. So essentially many experiments. In that case, you want to plot each experiment sequentially, connected with lines.
plot(T,av)
will connect each point to the next eith a line. But
plot(T,av,'o')
will not connect the points sequentially.
But first, undertand what it is that you have.
  1 Kommentar
Matthew Worker
Matthew Worker am 18 Feb. 2023
I do have time values that are repeated, but with different average values, maybe that's what makes my curve look wrong.
Thanks for your answer.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by