Matlab does not plot data which are mirrored data

1 vue (au cours des 30 derniers jours)
I G
I G le 27 Fév 2021
Modifié(e) : Cris LaPierre le 27 Fév 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?

Réponses (2)

Cris LaPierre
Cris LaPierre le 27 Fév 2021
Modifié(e) : Cris LaPierre le 27 Fév 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 commentaires
I G
I G le 27 Fév 2021
Modifié(e) : I G le 27 Fév 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 le 27 Fév 2021
Modifié(e) : Cris LaPierre le 27 Fév 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)))

Connectez-vous pour commenter.


Jan
Jan le 27 Fév 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 commentaire
I G
I G le 27 Fév 2021
How can I plot it as in mirror, so that they not overlap each other?

Connectez-vous pour commenter.

Catégories

En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by