Matlab:来自自身向量的3D曲面图

时间:2015-01-12 12:12:29

标签: matlab plot coordinates

我有3个带坐标值(X,Y,Z)的矢量,我想将它们绘制成曲面。我已经尝试过来自这里和其他论坛的各种解决方案,并且不能让我的生活让它看起来像任何有意义的东西。我有一张图片可以更好地描述情况但我无法发布,因为我没有足够的声誉。请帮忙。谢谢。

编辑:这是图片的链接: enter image description here

在图片中,每个矢量箭头的原点代表3D坐标中的点,矢量箭头的长度给出了在3D空间中该点移动所需扭矩的大小。

现在,数据在行向量中与每个​​点的坐标分开:这样,X的一个向量,Y的一个向量.Z是整个3行矩阵内的一行矩阵描述了3个坐标轴中所需的扭矩。

我尝试在X和Y向量上使用meshgrid,然后使用griddata然后surf将Z值归因于我,但我没有得到某些内容看起来像原始: enter image description here

情节是线性的,但我非常确定数据不是......至少不是线性的。

3 个答案:

答案 0 :(得分:1)

似乎你想要绘制由向量描述的单个点,在这里你有一个旧的答案(作为奖励,你将有漂亮的彩色情节'因为这是原始问题的问题):

假设Data=[Vec1,Vec2,Vec3,...]VecN=[Xn,Yn,Zn]'

” 如果要绘制点,可以定义RGB颜色并使用hold on绘制单点,如下所示:

hold on

for i=1:length(Data(:,1)) 

    plot3(Data(i,1),Data(i,2),Data(i,3),'Color',[(i/100*255)/255 0/255 (255-(i/100*255))/255],'LineWidth',2)

end    

shg

答案 1 :(得分:1)

管理解决问题。如上所述,数据并不统一,正因为如此,surf从剧情的一端跳到另一端,造成了一团糟。通过使用linspace线性组织值然后使用这些值创建meshgrid,然后使用griddatacubic插值分配Z值来解决此问题。管理到用手边的数据生成适当的表面图。

答案 2 :(得分:0)

在循环中单独绘制每个数据点:

AT#SD=1,1,####,"###.##.###.##" where #### is the server port and
###.##.###.## is the IP number.

不要忘记添加figure; hold on; grid on; for i = 1:length(x) stem3(x(i),y(i),z(i)); end 。使用"旋转3D"如果绘图首先以2D显示,则从图形窗口中的工具栏开始按钮。

enter image description here