MATLAB Answers

I am trying to plot a contour graph with with x,y and z points

1 view (last 30 days)
RAPHAEL OKECHUKWU NWALOZIE
Commented: DGM on 26 Apr 2021
Hi I am a newbie in matlab. I tried plotting x,y and z values (which are column vectors) with contourf function but the I get an error message that "Z must be at least a 2x2 matrix". How do I make z a 2x2 matrice?
  2 Comments
Adam Danz
Adam Danz on 25 Apr 2021
> How do I make z a 2x2 matrice
Impossible to answer without more info.
z(i,j) defines the z-value at x(i) and y(j).

Sign in to comment.

Answers (1)

Clayton Gotberg
Clayton Gotberg on 26 Apr 2021
Edited: Clayton Gotberg on 26 Apr 2021
It sounds like the problem is that you haven't made these functions into a grid.
You started with x and y, then found z as a function of x and y. However, I'd guess that when you did that, you just said z = f(x,y).
% What I think you have:
x = [1 2 3 4];
y = [4 3 2 1];
z = x+y; % This equals [5 5 5 5]
% This matches up each element in x with the element in the same location in y
%what I think you want:
z = x+y; % Except now it equals [5 6 7 8; 4 5 6 7; 3 4 5 6; 2 3 4 5].
% Now, every element in x is matched with every element in y.
% How to get what you want:
[X,Y] = meshgrid(x,y); % Now X = [1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3 4]
% and Y = [4 4 4 4; 3 3 3 3; 2 2 2 2; 1 1 1 1]
Z = X+Y;
  3 Comments
DGM
DGM on 26 Apr 2021
Yeah, prior to R2016b, trying to do things with orthogonal vectors often devolves into a complicated mess requiring bsxfun(). Since I'm usually running R2015b still, meshgrid is a big convenience, even if it can be slow.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!