Matlab does not plot data which are mirrored data

3 visualizzazioni (ultimi 30 giorni)
I G
I G il 27 Feb 2021
Modificato: Cris LaPierre il 27 Feb 2021
I have variable r with dimension [1x2002] and values
r = [1 0.9 0.8 0.7 . . . 0.7 0.8 0.9 1]
and variable u0 with dimension [1x2002] and values
u0 = [0 0.0001 0.0002 . . . 0.0002 0.0001 0]
When I plot these data as plot(r, u0) I got only half of these values, but I need all values from my variables (whole velocity profile u0, not just half velocity profile as I got), how I can do that?

Risposte (2)

Cris LaPierre
Cris LaPierre il 27 Feb 2021
Modificato: Cris LaPierre il 27 Feb 2021
It's plotting it all. It just appears that your data overlaps itself.
Compare these examples
r=abs(-1:0.1:1);
u0=-abs(-1:0.1:1) + 1;
plot(r,u0)
% to this
r=-1:0.1:1;
u0=-abs(-1:0.1:1) + 1;
plot(r,u0)
You can check this by plotting without specifying x values. This will plot the y values using their index number as for x. This will allow you to see the values of every u0 value.
plot(u0)
  2 Commenti
I G
I G il 27 Feb 2021
Modificato: I G il 27 Feb 2021
How can I plot data as on second graph, just this values -1 and -0.5 on x axis needs to be positive? So I need that my x axis has values 1 0.5 0 0.5 1
Cris LaPierre
Cris LaPierre il 27 Feb 2021
Modificato: Cris LaPierre il 27 Feb 2021
That would confuse me, but your xticklabels do not have to be the same as your xtick locations. I might do something like this to put it on the same plot.
r=-1:0.1:1;
u0=-abs(-1:0.1:1) + 1;
plot(r,u0)
xticklabels(abs(str2double(xticklabels)))
To use the approach that uses the index number for x, you could do something like this.
plot(u0)
xlim([1,length(u0)])
xticks(linspace(1,length(u0),5))
xticklabels(abs(linspace(-1,1,5)))

Accedi per commentare.


Jan
Jan il 27 Feb 2021
If the 2nd half of the data equals the 1st half in different order, you do plot all data, but the line overlap. See:
r = [1 0.9 0.8 0.7 0.7 0.8 0.9 1]
u0 = [0 0.0001 0.0002 0.003 0.003 0.0002 0.0001 0]
figure
plot(r, u0)
figure
plot(r(1:4), u0(1:4), 'r+')
hold on
plot(r(5:8), u0(5:8), 'bo')
  1 Commento
I G
I G il 27 Feb 2021
How can I plot it as in mirror, so that they not overlap each other?

Accedi per commentare.

Categorie

Scopri di più su Graphics Object Programming in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by