SCATTER3要求x,y和z以及其他分组参数为单个系列的大小相等的Nx1向量或M系列的NxM矩阵.
您拥有全空间3D数据.要使等大小的坐标向量使用MESHGRID(或NDGRID)函数:
[X, Y, Z] = meshgrid(t, y, a);
然后你可以使用SCATTER3:
scatter3( X(:), Y(:), Z(:), [], S(:) )
问题是因为它的全空间数据scatter3在你有很多分数时没有特别的帮助.
您可以过滤您的S变量(类似于idx = S> 0),然后您可以绘制过滤后的数据.
如果您确实需要可视化所有数据,请查看MATLAB文档中的Volume visualization.例如,我可以推荐SLICE功能.
编辑
下面是小矢量(m,n,o等于5)的全3D空间散射图的示例,其中S = rand([m,n,o]); scatter3(X(:),Y(:),Z(:),[],S(:),’filled’)
编辑2
从您的评论到其他答案,我发现您有32x76050x4矩阵.您实际上可以一次绘制一个2D切片.您可以使用IMAGESC功能在2D中进行,或使用SLICE功能在3D中进行.
尝试:
imagesc(S(:,:,k))
其中k是第3维的1到4的数字.
或者试试
slice(S, [], [], 1:size(S,3))
shading flat