Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB从角度的数据点生成曲面_Matlab - Fatal编程技术网

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

MATLAB从角度的数据点生成曲面,matlab,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.

这里是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的其他集合。我在考虑创建单独的集合a代表x,b代表y,c代表z

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)。这也不会生成曲面,它只是在每个平面上绘制点。我尝试过使用mesh,但无法使其工作。非常感谢您的帮助,我对编码非常陌生。

嘿,请尝试查看此链接:。转到底部,查看如何使用surf处理这些数据。您能否尝试更具体地描述您要绘制的曲面?例如,你能给出
r(θ,φ)
函数和
theta
phi
的范围吗?你应该能够生成一个
theta,phi
网格,然后用
r(theta,phi)
绘制相应的极坐标点,但我需要了解这是否是你真正想要实现的。@AndrasDeak我没有一个公式,因为它是实验室数据。我测量了悬挂在双线摆上的物体的周期,该摆绕每个轴旋转0°到90°,每10°。所以当它绕x轴旋转时,我有10个不同的r,r(10°),r2(20°)等等;另外10个不同的r用于绕y轴旋转,另外10个r用于绕z轴旋转。我想“连接点”,得到一个希望类似于椭球体的曲面。换句话说,在XY平面上,我有10条不同长度的线,从原点开始,彼此之间形成10°角,与x轴成0到90°角。YZ和ZX飞机的情况相同。这能澄清问题吗?我想是的。所以你们有(大概?)3*10个点,沿着一个椭球体的XY,YZ和ZX平面的每一个切片有10个点。问题是,在这种情况下,“连接点”远非易事。你对笔和纸有什么想法吗?你应该如何从这些数据中构造椭球体?