在scatter3图中过滤Infs的简便方法

时间:2014-09-01 11:57:00

标签: matlab plot scatter-plot

鉴于以下代码,如何在没有颜色操作的情况下使散点图中的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');

2 个答案:

答案 0 :(得分:2)

使用MATLAB进行绘图时,具有NaN值的数据将不可见,您可以在自己的情况下使用它。由于您希望将Infinte值设为不可见,因此您可以将所有值转换为NaNs,然后绘制它们。在这里,您可以利用逻辑索引来索引Inf元素位置。因此,代码将是 -

J(isinf(J))=NaN

%// ... Plot J 

答案 1 :(得分:0)

一种方法可以是将高于某个阈值的值更改为NaN(或任何其他数字)。我相信NaN值不会出现在散点图中。您可以使用与之相同的代码执行此操作。

J(J>10^6) = NaN;