如何在MATLAB中可视化3D时间演化?

时间:2014-03-07 00:34:30

标签: matlab

可视化4D功能:

f(x,y,z,t)

我使用以下代码观察z = z0处的z切片:

for i = 1:t
    imagesc(squeeze(f(:,:,z0,i))
    pause(0.1)
end

有没有办法直接可视化这个时间演变的整个3D图片?

2 个答案:

答案 0 :(得分:2)

不确定

for i = 1:t
    % plot f(:,:,:,i)
    pause(0.1)
end

然后您需要选择想要如何显示3D数据的方式。例如,取自Matlab's documentation

for i = 1:t
    p = patch(isosurface(f(:,:,:,i), 42)); % Where 42 is the isovalue
    isonormals(f(:,:,:,i), p)
    set(p, 'FaceColor', 'red', 'EdgeColor', 'none');
    daspect([1,1,1])
    view(3); axis tight
    camlight; lighting gouraud
    pause(0.1)
end

注意:您也可以将pause(0.1)替换为drawnow,暂停的时间足够长,以便让情节更新。

答案 1 :(得分:1)

使用plot3,scatter3,mesh或surf。

如果您有更新的matlab版本,请在命令窗口中打开工作区,选择所需的3个变量,然后单击“图”选项卡。然后将在顶部显示可用的图表。