Leg*_*end 6 matlab plot graph spatial
更新:
链接到我的测试数据集
我有一些这样的数据:
10.0 11.0 0.5
10.0 12.0 0.5
10.0 14.5 0.5
10.0 16.0 0.5
10.0 18.5 0.5
10.0 19.0 0.5
10.0 19.5 0.5
10.0 20.0 0.5
Run Code Online (Sandbox Code Playgroud)
使用Gnuplot,我可以绘制以下图片:
使用我写的以下脚本:
set data style lines
set surface
set dgrid3d 30,30
set hidden3d
set ticslevel 0.8
set isosample 40,40
set view 60, 30, 1, 1
set contour base
splot "dataset" using 2:1:($3) notitle
Run Code Online (Sandbox Code Playgroud)
我试图在这个图上做一些分析,所以想把它变成Matlab,但我不知道如何绘制它.我尝试将数据集导入Matlab,这是我能走多远.我正在加载文件并使用以下Matlab语句进行绘图:
load data
rangeY = floor(min(data(:,2))):.5:ceil(max(data(:,2)))
rangeX = floor(min(data(:,1))):.5:ceil(max(data(:,1)))
[X,Y] = meshgrid(rangeX,rangeY)
Z = griddata(data(:,1),data(:,2),data(:,3),X,Y, 'cubic')
surf(X,Y,Z)
Run Code Online (Sandbox Code Playgroud)
图片看起来与我截然不同(轴范围,形状等)有人能告诉我如何获得类似于我通过Gnuplot获得的情节吗?
我很惊讶你的代码不起作用。我在我的一个数据集上尝试了一下,效果很好。作为第一个答案,我建议您发布数据集的链接(如果不敏感),并尝试其他插值方法(从默认的插值方法开始linear
)。
然而,我注意到griddata
在 XY 域的边界产生了相当多的 NaN,即使我的数据集非常密集并且在该域中分布良好。我检查了文档,其中提到:
有时,griddata 可能会以 NaN 形式返回数据凸包上或非常靠近凸包的点。这是因为计算中的舍入有时会导致难以确定边界附近的点是否在凸包中。
我不认为这是问题的原因,但我仍然怀疑这个函数在非常稀疏的数据集上表现不佳。你应该尝试TriScatteredInterp
一下,无论如何,这样更快。
归档时间: |
|
查看次数: |
2581 次 |
最近记录: |