MATLAB使用矩阵在3D中绘制几个表面图

时间:2017-04-26 09:27:10

标签: matlab plot

我想在我的3D空间中显示几个球体,每个球体都有不同的中心位置和半径。所以我按照Matlab的教程进行操作,得到以下结果。唯一的问题是我可能有数百个球体来绘制,所以它不可能写下数百行。有没有办法使用带有矩阵输入的surf()函数?也许用x,y和z矩阵冲浪(x,y,z)?谢谢!

hold on;
[x,y,z] = sphere;
r = 50;
s1 = surf(x*r,y*r,z*r,'FaceAlpha',0.1);
s2 = surf((x+3)*r,(y-2)*r,z*r,'FaceAlpha',0.1); % centered at (3,-2,0) 
s3 = surf(x*r,(y+1)*r,(z-3)*r,'FaceAlpha',0.1); % centered at (0,1,-3)

s1.EdgeColor = 'none';
s2.EdgeColor = 'none';
s3.EdgeColor = 'none';

enter image description here

1 个答案:

答案 0 :(得分:1)

以通用形式写出......你几乎就在那里:

s = surf((x-cx)*r,(y-cy)*r,(z-cz)*r,'FaceAlpha',0.1);

现在只需使用循环

更改cx,cy,cz即可