鉴于以下代码,如何在没有颜色操作的情况下使散点图中的Inf值不可见?
J = rand(20, 40, 5);
J(J>.6 & J<.4) = Inf;
% Plot a scatter matrix
shape = size(J);
[x,y,z] = meshgrid(1:shape(1), 1:shape(2), 1:shape(3));
scatter3(x(:), y(:), z(:), 4, J(:), 'fill');
答案 0 :(得分:2)
使用MATLAB进行绘图时,具有NaN
值的数据将不可见,您可以在自己的情况下使用它。由于您希望将Infinte
值设为不可见,因此您可以将所有值转换为NaNs
,然后绘制它们。在这里,您可以利用逻辑索引来索引Inf
元素位置。因此,代码将是 -
J(isinf(J))=NaN
%// ... Plot J
答案 1 :(得分:0)
一种方法可以是将高于某个阈值的值更改为NaN(或任何其他数字)。我相信NaN值不会出现在散点图中。您可以使用与之相同的代码执行此操作。
J(J>10^6) = NaN;