MATLAB从角度的数据点生成表面

时间:2015-10-22 19:56:46

标签: matlab

这里是matlab的新手。 我有10个数据点从0到90,在XY轴之间以10度为增量,另外10个点以相同的增量为YZ和ZX。我想从这些点创建一个表面。我想我应该用球坐标定义它然后转换为笛卡尔坐标,但我不确定如何为每个平面分配一个位置到那些数据点。目前我有

th = [0 10 20 30 40 50 60 70 80 90].*(2*pi)./360;
phi = [0 10 20 30 40 50 60 70 80 90].*(2*pi)./360;
r = [1.47 1.24 1.44 1.39 1.34 1.29 1.24 1.19 1.18 1.16] % r is my data at length 1.47 etc. from the origin in x to y plane
 x=r.*sin(th).*cos(phi);
  y=r.*sin(th).*sin(phi);
   z=r.*cos(th); 
[x,y,z]=sph2cart(th,phi,r);
plot3(x,y,z,'.');
grid on;

这是我能想到的最好的。这会将rs扩展到整个图形,而不是将它们保持在XY平面上,并使用YZ和ZX的其他集合。我正在考虑为x创建单独的集合a,为y创建单独的集合,对于z

创建c
a = [1.47 1.24 1.44 1.39 1.34 1.29 1.24 1.19 1.18 1.16] 
b = [2.47 2.24 .......................................] 
c = [5.01 4.95........................................]
     x=a.*sin(th).*cos(phi);
      y=b.*sin(th).*sin(phi);
       z=c.*cos(th); 

但是在这种情况下,我不确定如何将a,b,c放入sph2cart(th,phi,r);。这也不会生成表面,只是绘制每个平面上的点。我试过使用网格,但我无法使用网格。非常感谢帮助,我对编码很新。

0 个答案:

没有答案