Plotting a 3-D Function with Interpolated Shading

1 vue (au cours des 30 derniers jours)
Jonathan
Jonathan le 18 Juil 2013
I am having issues with the meshgrid ( http://www.mathworks.com/help/matlab/ref/meshgrid.html ) function. I need X and Y to be a 21x25 matrix but this function is only generating a 21x26 matrix when I use the following command:
[X,Y] = meshgrid(0:.04:1, 0:.024:0.5);
Z = cos(2*pi*(3.*X - 4.*Y))
surf(X,Y,Z)
X and Y are bounded by the following:
0<= X <= 1 (Need 25 data points)
&
0<= Y <= 0.5 (Need 21 data points)
I figure that 1 / 25 should give me 25 total data points for the X bounary and 0.5 / 21 should give me 21 total data points for the Y boundary.
However, meshgrid is giving me a 21x26 matrix. Is the parameter argument incorrect for the function?

Réponse acceptée

Evan
Evan le 18 Juil 2013
Modifié(e) : Evan le 18 Juil 2013
[X,Y] = meshgrid(linspace(0,1,25), 0:.024:0.5);
Z = cos(2*pi*(3.*X - 4.*Y))
surf(X,Y,Z)
The linspace command will gave you the same result as 0:1/24:1, as I believe increments of 1/24 would give you the number of data points you desire.
It's a bit easier to use linspace instead of the colon operator when your main concern is the length of the array you're creating, not the spacing.
  4 commentaires
Jonathan
Jonathan le 18 Juil 2013
Sounds great. That was my mistake. I was assuming the correct expression would be 1/25 because I need 25 data points so (1-0)/25, but I was neglecting that were are starting at 0 and therefore I didn't account for it.
Thanks for your help Evan. I greatly appreciate it!
Evan
Evan le 18 Juil 2013
I make that same mistake quite often. And no problem! Glad you have it working.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by