在3d中绘制3个向量

时间:2012-06-21 14:24:00

标签: matlab plot

我有3个向量,一个用于Phi的角度,另一个用于Teta的角度,最后一个是Y axe中的点向量,在计算{的点之后{1}}& Teta有一个函数:

Phi

如何将三者合并在一起?

我想用for teta = 0 : 10^-2 : pi/2 for phi = 0 : 10^-2 : pi/2 Y(current) = v*sin(phi)*sin(teta); Teta(current) = teta; Phi(current) = phi; current = current + 1; end end &来绘制3d图表。 Teta作为Phi的函数。 我试过Y,但结果不太令人满意。

谢谢

2 个答案:

答案 0 :(得分:2)

我不清楚确切的目标,但这是我的解释:

teta = 0:.01:pi/2;
phi =0:.01:pi/2;
[t p]=meshgrid(teta,phi);
Y = v*sin(p)*sin(t);
surf(t,p,Y)
xlabel('teta')
ylabel('phi')
zlabel('1*sin(teta)*sin(phi)')

创建tetaphi值的向量,使用meshgrid生成t和p值的矩阵,并使用sin的向量化形式(而不是for循环)。然后使用surf将结果绘制为3D中的曲面。enter image description here

答案 1 :(得分:1)

enter image description here

这个还好吗?我已经做大一步并将v设为1。

current = 1;
for teta = 0 : 10^-1 : pi/2 
    for phi = 0 : 10^-1 : pi/2 
        Y(current) = 1*sin(phi)*sin(teta);  
        Teta(current) = teta;
        Phi(current) = phi;
        current = current + 1;
    end
end
plot3(Teta,Phi,Y);
xlabel('Teta')
ylabel('Phi')
zlabel('Y')
grid on