
I am trying to plot a contour graph with with x,y and z points
1 ビュー (過去 30 日間)
表示 古いコメント
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 件のコメント
Adam Danz
2021 年 4 月 25 日
> 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).
回答 (1 件)
Clayton Gotberg
2021 年 4 月 26 日
編集済み: Clayton Gotberg
2021 年 4 月 26 日
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 件のコメント
DGM
2021 年 4 月 26 日
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.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!