作业帮 > 综合 > 作业

matlab利用插值方法,离散温度点怎么画出四维图像

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/04/29 18:26:35
matlab利用插值方法,离散温度点怎么画出四维图像
给出的slice 例程程序如下.现温度值V 与坐标没有函数关系,要如何才能画出下图呢?
[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);
v = x.*exp(-x.^2-y.^2-z.^2);  
xslice = [-1.2,.8,2]; 
yslice = 2; 
zslice = [-2,0]; 
slice(x,y,z,v,xslice,yslice,zslice) 
colormap hsv 
matlab利用插值方法,离散温度点怎么画出四维图像
“温度值V 与坐标没有函数关系”,如果你的数据是离散的xyz坐标值以及与其对应的温度v值,那么你要得到使用slice要求的条件,分两步:1.得到V的网格化的值.可以使用v1= griddata3(x,y,z,v,xi,yi,zi);xyz是三维坐标,xi,yi,zi是你指定的网格的坐标,按照上面的例程就是[xi,yi,zi] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);这样你就得到了新的网格化的V1,满足了你没有函数关系也计算出v的目的.2.设定slice并绘制.xslice = .;yslice = .; zslice = .;
slice(xi,yi,zi,v,xslice,yslice,zslice) ;你可以试试,主要步骤和函数比较简单,就是matlab在插值(网格化)方面是比较软肋的,提供的插值算法忒少了,有时对实际数据的网格化并不令人满意,不过对于四维数据的网格化也只能用matlab了.另外四维数据的显示还可以用surf和mesh,显示三维坐标的曲面,用曲面上的颜色表示第四维数据,用哪一种你可以根据研究目的而定,研究瓜瓤用slice,研究瓜皮用surf和mesh.
再问: 你的回答很赞同!slice 和mesh 两种方法都用了。我的程序是在空间点分散的27个测量值,由于分布不规则,实现结果都很不令人满意。
这个是用的slice 函数,最后的图形偏向于三角,且插值情况十分不满意。
请问 对以上程序还有改进方法吗?另外发现mesh程序不能包含到所有测试点,有改进方法吗?谢谢!
再答: 27个点?天那,头一次遇到这么少的点,如果只有27点,我所知的任何软件都不可能获得良好的插值效果,这样的数据量别说三维图,按平面图的要求网格化都不可能有好的效果。点子少还能满足你的要求,这.......不科学!首先从数学理论方面就已经决定了插值效果不会令人满意的,如果不增大原始采样的数据量将没有任何可以改进的办法了。