how to plot 3D graph using mesh() for a rectangular matrix of data?

3 views (last 30 days)
Dear sir/madam,
I am using mesh() to plot 3D graphs. To plot a 3D graph the length of x-axis and y-axis must be equal, using mesh(). But I need to plot a 3D graph where the length of x-axis and y-axis are not equal. When I tried to plot the graph for unequal lengths, it showed "dimensions do not agree". How can I plot a 3D graph for unequal lengths, using mesh()? Looking forward for your reply.
Thanking you, BSD

Accepted Answer

Christoph
Christoph on 20 Jul 2011
Maybe I missunderstood your problem but as far as I know the axis do not have to be of the same length.
x=1:1000;y=1:3500;%axis
for iter1=1:length(x)
for iter2=1:length(y)
z(iter1,iter2)=y(iter2)/x(iter1);%data
end
end
mesh(y,x,z)%plot it
y and x are not of the same length. The lengths of y,x need to fit the size of z though.
  3 Comments
bsd
bsd on 20 Jul 2011
Thanks for the reply. But what do you mean by "the lengths of y, x need to fit the size of z though", in your reply.
Thanking you,
BSD
Christoph
Christoph on 20 Jul 2011
@andrei
thanks for your comment, I'm not that well versed with bsxfun and the like.
@bsd
I mean just what andrei wrote in his answer
"Z - array (of type)double with size [length(x),length(y)]"

Sign in to comment.

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 20 Jul 2011
[X,Y] = meshgrid(x,y);
Z = fun(X,Y);% or Z - array double with size [length(x),length(y)]
mesh(X,Y,Z)

Categories

Find more on Line Plots in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!