Matlab 绘制数据集的总和

Matlab plotting the sum of a dataset

对于我的代码,我有一个 375x223x91 数据集(称为 'data1'),我很难将其绘制成图形。我可以使用以下方法成功绘制单个切片:

figure
imagesc(data1(:,:,50))
axis image 
impixelinfo
colormap(jet)

% top-down view of slice 50 (of the 91 slices) of 'data1'. 

但是我想对 91 个切片中的每一个求和并绘制自上而下的视图。我试图写一个 'for loop' 并在 z 方向上对所有 91 个切片求和然后绘制它但我得到错误。您的帮助将不胜感激。谢谢。

(添加 3D 图像的额外指导也将不胜感激)

如果您想沿第三个维度对数据求和,您应该使用 sum:

的维度输入
sdata = sum(data1, 3);

然后就可以正常显示了

imagesc(sdata);

就绘制 3D 图像而言,使用 pcolor 是一种方法。

p = pcolor(sdata);
set(p, 'EdgeColor', 'none');

这会将图像放置在 z = 0。如果你想改变它的位置,你可以改变 ZData

zvalue = 10;
set(p, 'ZData', 0 * get(p, 'ZData') + zvalue);

另一种选择是使用 surf 对象,其中 FaceColor 设置为 texturemapCData 设置为您的图像数据。

s = surf(ones(2));
set(s, 'FaceColor', 'texturemap', 'CData', sdata);

您可以调整表面的 XDataYDataZData 以调整 3D 中的位置 space。