matlab有X,Y及Z值,Z值离散,为何不能画三维图?需要插值吗?现在有了X,Y的横纵坐标值及每个点对应的Z值,但是用matlab的plot3画出的是线状不规则图.现在想由这一万多个点画出光滑一点的连续曲面
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 13:09:16
![matlab有X,Y及Z值,Z值离散,为何不能画三维图?需要插值吗?现在有了X,Y的横纵坐标值及每个点对应的Z值,但是用matlab的plot3画出的是线状不规则图.现在想由这一万多个点画出光滑一点的连续曲面](/uploads/image/z/3166775-71-5.jpg?t=matlab%E6%9C%89X%2CY%E5%8F%8AZ%E5%80%BC%2CZ%E5%80%BC%E7%A6%BB%E6%95%A3%2C%E4%B8%BA%E4%BD%95%E4%B8%8D%E8%83%BD%E7%94%BB%E4%B8%89%E7%BB%B4%E5%9B%BE%3F%E9%9C%80%E8%A6%81%E6%8F%92%E5%80%BC%E5%90%97%3F%E7%8E%B0%E5%9C%A8%E6%9C%89%E4%BA%86X%2CY%E7%9A%84%E6%A8%AA%E7%BA%B5%E5%9D%90%E6%A0%87%E5%80%BC%E5%8F%8A%E6%AF%8F%E4%B8%AA%E7%82%B9%E5%AF%B9%E5%BA%94%E7%9A%84Z%E5%80%BC%2C%E4%BD%86%E6%98%AF%E7%94%A8matlab%E7%9A%84plot3%E7%94%BB%E5%87%BA%E7%9A%84%E6%98%AF%E7%BA%BF%E7%8A%B6%E4%B8%8D%E8%A7%84%E5%88%99%E5%9B%BE.%E7%8E%B0%E5%9C%A8%E6%83%B3%E7%94%B1%E8%BF%99%E4%B8%80%E4%B8%87%E5%A4%9A%E4%B8%AA%E7%82%B9%E7%94%BB%E5%87%BA%E5%85%89%E6%BB%91%E4%B8%80%E7%82%B9%E7%9A%84%E8%BF%9E%E7%BB%AD%E6%9B%B2%E9%9D%A2)
matlab有X,Y及Z值,Z值离散,为何不能画三维图?需要插值吗?现在有了X,Y的横纵坐标值及每个点对应的Z值,但是用matlab的plot3画出的是线状不规则图.现在想由这一万多个点画出光滑一点的连续曲面
matlab有X,Y及Z值,Z值离散,为何不能画三维图?需要插值吗?
现在有了X,Y的横纵坐标值及每个点对应的Z值,但是用matlab的plot3画出的是线状不规则图.
现在想由这一万多个点画出光滑一点的连续曲面图,但是使用surf时总说Z值不是matrix.明明是的啊.
是不是需要插值才可以呢?
如果是的话,要如何插值呢?
万望大虾们不吝赐教!
matlab有X,Y及Z值,Z值离散,为何不能画三维图?需要插值吗?现在有了X,Y的横纵坐标值及每个点对应的Z值,但是用matlab的plot3画出的是线状不规则图.现在想由这一万多个点画出光滑一点的连续曲面
plot3用来画三维曲线图,不能画曲面图;
假设你的数据为
X=[1 2 3 4 5 6 7 8];%当然你的数据可能很复杂
Y=[2 3 4 5 6 7 8 9];
Z = 2 12 36 80 150 252 392 576
%我随意取的满足Z=X.^2*Y,当然你的Z不是很有规律,或者有你不知!
即有(x,y,z)共八组点,你想画出曲面图z=f(x,y)
可是你用surf画曲面图必须是对于X Y交叉的所有Z值都得已知,才可以画出!
>> [xx,yy]=meshgrid(X,Y)
xx =
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
yy =
2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9
即你应该知道所有的Z值,而不仅仅是(x,y)=(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9)点处对应的z值,只有这样才能画出你的曲面图
即想方法测出其他点的z值,只有获得了这些以后,才可以用插值函数interp2进行插值获得更精细的曲面图
即缩小区域及间隔
[x0,y0]=meshgrid(1:0.1:10,2:0.1:10)%当然你可以自己取范围与间隔
z0=interp2(X,Y,ZZ,x0,y0)%X,Y为你自己的数据,ZZ为我告诉你要获得的length(Y)行length(X)列的矩阵,得到的z0也为矩阵
surf(x0,y0,z0)%即画出你要的曲线图
希望我的回答能帮助你!