我有数据的3个向量,X(位置)这两者都是不规则地间隔开,Y(位置),和Z(在每个位置处的兴趣值)。我尝试了contourf,它不起作用,因为它需要一个用于Z输入的矩阵。Matlab的:使等高线图与3个矢量
4
A
回答
5
对于contour图,您实际上需要一个z值矩阵或一个在网格上评估的z值集(矢量)。您无法在网格上的(X,Y)点使用隔离的Z值定义轮廓(即您声称拥有的)。
你必须生成过程(或函数)为(X,Y)点的网格提供值。
如果没有,那么你可以创建a surface from nonuniform data作为@nate正确地指出,然后绘制该表面上的轮廓。
考虑以下的(随机)例如:
N = 64; % point set
x = -2 + 4*rand(N,1); % random x vector in[-2,2]
y = -2 + 4*rand(N,1); % random y vector in[-2,2]
% analytic function, or z-vector
z = x.*exp(-x.^2-y.^2);
% construct the interpolant function
F = TriScatteredInterp(x,y,z);
t = -2:.25:2; % sample uniformly the surface for matrices (qx, qy, qz)
[qx, qy] = meshgrid(t, t);
qz = F(qx, qy);
contour(qx, qy, qz); hold on;
plot(x,y,'bo'); hold off
的圆圈对应于原始矢量点与值(x,y,z)
每点,对插值表面的轮廓的轮廓。
6
您也可以使用griddata
。
%Generate random data
x = rand(30,1);
y = rand(30,1);
z = rand(30,1);
%Create regular grid across data space
[X,Y] = meshgrid(linspace(min(x),max(x),n), linspace(min(y),max(y),n))
%create contour plot
contour(X,Y,griddata(x,y,z,X,Y))
%mark original data points
hold on;scatter(x,y,'o');hold off
相关问题
- 1. 等高线图与3矢量
- 2. 3个矢量Matlab 3d图
- 3. 等高线图的三维矢量
- 4. Matlab等高线图
- 5. 带3个矢量的曲面图Matlab
- 6. 从3个矢量创建等值线图
- 7. 与矢量MATLAB
- 8. 等高线图与附标量
- 9. Matlab等高线图平滑的颜色
- 10. matlab等高线图特定值
- 11. Python的等效Matlab的矢量切片
- 12. MATLAB使用矢量
- 13. Matlab的矢量
- 14. Matlab的:由一个矢量
- 15. Matlab函数颤动3 - 矢量断开
- 16. 在R2014b Matlab的等高线图图例从以前的版本
- 17. 如何在一个matlab等高线图上显示数值
- 18. 等高线和曲面的Matlab
- 19. SAS矢量图:矢量线消失
- 20. 3个变量的高斯轮廓图-MATLAB
- 21. R - 等高线图
- 22. R - 等高线图
- 23. 矢量在MATLAB
- 24. MATLAB:矢量
- 25. MATLAB:矢量
- 26. MATLAB矢量
- 27. 在Matlab中绘制来自3个变量的线图
- 28. 错误与等高线图GGPLOT2
- 29. 与填充等高线图R/ggplot/ggmap
- 30. Matlab读取矢量的最后一个条目不等于零
如果你的'Z'不是一个矩阵,以什么格式呢? –
这是一个向量,它是一系列对应于2D连续位置的值 – Moe
这应该是有帮助的:http://blogs.mathworks.com/videos/2007/11/02/advanced-matlab-surface-plot-的-不均匀数据/ – bla