在MATLAB中标记绘图中的所有点

时间:2015-03-31 05:30:20

标签: matlab plot matlab-figure

x和y轴对应于具有(x,y)的二维阵列。我想根据一些返回布尔值的函数标记所有点。

f(xAxis_array,yAxis_array)返回True / False。如果这是真的,我想用红色标记该点,否则标记为黑色。

例如,我希望获得类似的结果:

Imgur picture

提前谢谢!

1 个答案:

答案 0 :(得分:1)

这很简单。您可以将数据分成两部分 - 一部分满足约束,一部分不满足。然后,您可以使用这两个部分调用plot,并以不同方式为每个点着色。因此,给定两个数组xAxis_arrayyAxis_array,并给出函数f(假设为矢量化),您可以执行以下操作:

ind = f(xAxis_array, yAxis_array);
redx = xAxis_array(ind);
redy = yAxis_array(ind);
blackx = xAxis_array(~ind);
blacky = yAxis_array(~ind);

plot(redx, redy, 'r.', blackx, blacky, 'k.');

第一行代码为True/FalsexAxis_array中的每对点返回yAxis_array。这将是logical向量,可以为您提供相应的点是True还是False。完成后,我们使用逻辑索引来分隔应标记为红色的点和应标记为黑色的点。将这些分开后,我们使用单个plot调用,以便那些应该是红色的坐标以该颜色标记,而那些黑色的坐标则标记为这样。