如何使用曲面(mesh
,surf
)可视化具有不完整数据集的2D数组?
'不完全'表示{v
- 已知值,0
- 未知):
1 | 2 | 3 | 4 | 5
1 | v | 0 | v | 0 | v
2 | 0 | 0 | 0 | 0 | 0
3 | v | 0 | v | 0 | v
4 | v | 0 | v | 0 | v
5 | 0 | 0 | 0 | 0 | 0
这种数据索引对于分析变量之间的非线性关系很方便。
我想要的是用plot
函数以某种方式工作。可以说,x = [1,2,4,5]
。 plot
将显示连续数字。
对于没有手动插值的2D阵列,是否可以这样做?不要关心光滑度。已知点的线性连接没问题。
答案 0 :(得分:1)
所以你有非线性采样(x = [1 3 5]
,y = [1 3 4]
),你不想进行插值?我不认为surf
等会处理它。听起来像是plot3
的工作。
这有点丑陋(见结果),但我假设您只想将其可视化以了解数据。首先使用x
和y
组成repmat
,如果您还没有这样的话:
x =
1 3 5
1 3 5
1 3 5
y =
1 1 1
3 3 3
4 4 4
然后你需要你的值,而不是所有的零匹配:
z =
6 8 10
6 5 4
4 2 1
这可以用标记绘制(如果你有很多分数,可能是最简单的)。或者你可以用这个技巧制作一个"网格"中两行:
plot3(x,y,z)
hold on
plot3(x',y',z')
xlabel('x');
ylabel('y');
正如您的plot
示例一样,这只是现有点之间的线性连接。
答案 1 :(得分:0)
您可以替换0
值的NaN
值。
surf
和mesh
都与NaN
一起使用。