how to plot a signal in the time domain?

6 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Sulaymon Eshkabilov
Sulaymon Eshkabilov il 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 Commenti
Matthew Worker
Matthew Worker il 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 il 18 Feb 2023
Most welcome. Figure 1 is showing the unsorted (raw) data vs. Figure 2 is showing the sorted data.

Accedi per commentare.

Più risposte (1)

John D'Errico
John D'Errico il 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 Commento
Matthew Worker
Matthew Worker il 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.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by