matlab中等高线contour的问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中等高线contour的问题?相关的知识,希望对你有一定的参考价值。

参考技术A x=rand(1,10);
y=rand(1,10);
z=rand(1,10); %我这里用随机数了,你的用读取到的数据代替.
%要把离散数据网格化,因为contour,surface和mesh接受的都是网格化数据.
xi=linspace(min(x),max(x),50); %从最小到最大之间取若干点,我用了50个,你可以随意改.
yi=linspace(min(y),max(y),50);
[xi,yi]=meshgrid(xi,yi); %网格化x,y
zi=griddata(x,y,z,xi,yi,'cubic'); % 网格化z,实际上就是二维插值,可以用'linear'有棱角的,'cubic'就比较平滑.
subplot(1,2,1)
contour(xi,yi,zi) %如果不需要比较立体图,那就不需要subplot了,直接contour
colorbar
subplot(1,2,2)
mesh(xi,yi,zi) % 立体效果图,用surf也可以.,11,matlab中等高线contour的问题
数据格式为:
编号 x坐标 y坐标 z高程
1,270.55,-31.72,143.08
2,262.40,-31.10,134.48
3,257.20,-30.28,127.28
4,254.81,-31.21,123.36
·····
现在我已经用csvread函数把x,y,z分别提取出来了 存在x,y,z 这三个vector里
而且实现了用satter(x,y)把点展到图上(如图)现在的问题是:
怎么生成等高线或者曲面啊?
contour(x,y,z)好像不行啊
报错提示是说我这个z矩阵应该是一个2X2以上的矩阵
我这里z是一个以为数组
是要在用contour之前把数据重新组织一下么,怎么组织?
但是我对matlab的数据结构不是很熟
希望有达人指点

matlab等高线绘制

参考代码:

figure;// Figure建立新的图形

z=double(z);
x=1:length(z);
y=x;
[X2,Y2]=meshgrid(x,y);
subplot(121);
[C,h]=contour(X2,Y2,z);// contour函数在MATLAB中,该函数用于绘制矩阵的等高线。
axis([0 2300 0 2300 ]);//设置图像的坐标轴
title(\'距月面2400m处的等高线图\',\'FontSize\',14);
colormap(gray);
z1=G{5};//根据上面分析,选择5作为降落点
x=1:length(z1);
y=x;
[X2,Y2]=meshgrid(x,y);
subplot(122);
contour(X2,Y2,double(z1));
colormap(gray);colorbar;
title(\' 5号区域等高线图\',\'FontSize\',14);


[X,Y] = meshgrid(x,y)
解释:输出X的每一行的数值都是复制的x的值;输出Y的每一列的数值都是复制的y的值。
[X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的

以上是关于matlab中等高线contour的问题?的主要内容,如果未能解决你的问题,请参考以下文章

matlab 等值线函数 contour

matlab等高线绘制

MATLAB绘制等高线和梯度场

matplotlib之contours等高线3D图(笔记五)

R语言可视化等高线(contour lines)使用geomtextpath包的geom_textcontour函数在等高线的不同层(水平level)中嵌入数值标签

实现图像等高线绘图的基本思路