如何应用任何二维线在一个给定的三维表面吗?

2视图(30天)
我将得到的维数在2 d平面几行。我希望能够将它们应用在任何3 d曲面构成的一组数据点。它表面可以是一组点云中的数据。这个表面可能不是由任何方程表示。我只是想知道,如果有一种方法可以适合这些线在一个表面上,现在线将有一个基于表面的曲线。
1评论
马特·J
马特·J 2022年11月2日
至少对我来说,问题回答不够清楚。请提供一个示例的输入数据集和一些描述输出应采取的形式。

登录置评。

接受的答案

明星黾
明星黾 2022年11月2日
编辑:明星黾 2022年11月2日
这实际上是简单的 griddedInterpolant 函数,提供了数据网格。表面可以是随机的,因为函数将插入它的一切。为目标的表面必须有足够的数据点,以适应任何表面的违规行为。
这里,黑色线是直的,洋红色线是一个正弦曲线
x = linspace (5 5 20);
y = linspace (0、10、25);
(X, Y) = ndgrid (X, Y);
z = randn (20、25);
F = griddedInterpolant (X, Y, z);
x1v = linspace (3.5, 1500);
y1v = linspace (3、7、1500);
z1v = F (x1v y1v);
x2v = linspace (4, 2500);
y2v = 4 + 2 * sin(2 *π* x2v / 5);
z2v = F (x2v y2v);
冲浪(x, y, z。”)
持有
plot3 (x1v y1v z1v,“k”,“线宽”3)
plot3 (x2v y2v z2v,“米”,“线宽”3)
持有
网格
包含(“X”)
ylabel (“Y”)
视图(80)
griddedInterpolant 函数将有更少的问题更常规的表面。数据点的行数是很重要的,为了提供足够好的函数解决地图所有的违规行为。我给了一个真正的挑战,它似乎做得很好。
编辑- 美学修复。
4评论
明星黾
明星黾 2022年11月2日
像往常一样,这是我的荣幸!

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!