如何形成一个球体与1的三维矩阵

30视图(30天)
Vinit Nagda
Vinit Nagda 2021年8月31日
评论道: Vinit Nagda2021年8月31日
我有一个矩阵 X = 0 (m, n, p);
如果我知道半径值和矩阵指数球体,质心位置我怎么分配1的矩阵,使其形成一个球体在矩阵吗?(忽略球面的一部分如果外矩阵维度)
谢谢你!

接受的答案

Wan霁
Wan霁 2021年8月31日
编辑:Wan霁 2021年8月31日
如果没有比例因子的影响与不同的方向:
m = 80;n = 100;p = 90;
[px, py, pz] = meshgrid (1: n, 1: m, 1: p);
半径= 20;
xc = 40;yc = 30;佐= 60;%球体的中心
logicalSphere = (px-xc)。^ 2 + (py-yc)。^ 2 + (pz-zc)。^ 2 < = *半径;
X = 0 (m, n, p);
X (logicalSphere) = 1;%设置为0
您还可以显示这个球体 等值面 补丁 函数
n轴([0,0,0,p))
p =补丁(等值面(px, py pz X, 0));
集(p,“FaceColor”,“红色”,“EdgeColor”,“没有”);
daspect ((1 1 1))
视图(3)
持有
scatter3 (px (:), py (:), pz (:), 1, X (:),“填充”)
camlight;照明冯氏
球面所示

更多的答案(2)

马特·J
马特·J 2021年8月31日
编辑:马特·J 2021年8月31日
使用ndgridVecs从文件交换
[dX, dY, dZ] = ndgridVecs ((1: m)厘米(1:n) - cn (1: p) - cp);%质心= (cm, cn, cp)
sphere3D = (dX。^ 2 + dY。^ 2 + dZ。^ 2 < = ^ 2)半径;%的结果
1评论
Vinit Nagda
Vinit Nagda 2021年8月31日
@Matt J 非常感谢你的回应。使用 ndgridVecs 因数是非常有效的。

登录置评。


Chunru
Chunru 2021年8月31日
编辑:Chunru 2021年8月31日
(m, n, p) =交易(10、12、14);
[xg, yg, zg] = ndgrid (1: m, 1: n, 1: p);
xc =圆(m / 2);yc =圆(n / 2);佐=圆(p / 2);%中心
r = 3;
idx = (xg-xc)。^ 2 + (yg-yc)。^ 2 + (zg-zc)。^ 2 < = r ^ 2;
s = false(大小(xg));%的范围
年代(idx) = true;
plot3 (xg (s)、yg (s)、zg (s),“o”);
网格;盒子

类别

找到更多的在矩阵和数组帮助中心文件交换

下载188bet金宝搏


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!