【发布时间】:2014-06-19 19:47:20
【问题描述】:
我为 SAFT(合成孔径聚焦技术)编写了代码并成功绘制了 2D 图像。现在,我在用 3D 绘制它时遇到了问题,因为我不知道应该使用哪种函数。我想创建 3D 图像,如下面的图像链接所示(右侧是实心体积),但我不知道他们使用的功能。我只知道左图是拼接的。
如果有人能帮助我解决这个问题,我将不胜感激。提前谢谢!
这是我一直用于 3D 数组的示例代码。请注意,我只是使用随机值作为强度,这里是 V,因为实际值存储在 excel 文件中。使用等值面时出现错误,因为我的数组不是使用网格网格创建的。
r=linspace(50,500,101)';
o=zeros(101,1);
X=zeros(51,101,13);
Y=zeros(51,101,13);
Z=zeros(51,101,13);
V=rand(size(X));
slice=1;
for angle=0:15:180
for elev=1:1:51
%Setup X,Y,Z Coordinates
X(elev,:,slice)=(r*cos(angle*3.141593/180))';
Y(elev,:,slice)=(r*sin(angle*3.141593/180))';
Z(elev,:,slice)=(o+((elev-1)*0.01))';
end
if slice < 13
slice=slice+1;
else
end
end
【问题讨论】:
-
你试过'isosurf'吗?
-
谢谢,我会尝试研究它是如何工作的
-
它将一个 3d 数组 f 和一个值 v 作为输入并显示 f=v 的表面
-
如果坐标数组不是用meshgrid形成的,它还能工作吗?我的坐标是圆柱形的,所以我不能使用 meshgrid 命令。
-
如果您发布指向您的数据的链接,我可以为您尝试。