【发布时间】:2015-03-31 13:40:08
【问题描述】:
x 和 y 轴对应于 (x,y) 的二维数组。我想根据返回布尔值的某个函数标记所有点。
f(xAxis_array, yAxis_array) 返回真/假。如果是真的,我想用红色标记点,否则用黑色标记。
例如,我想得到类似的结果:
提前谢谢你!
【问题讨论】:
标签: matlab plot matlab-figure
x 和 y 轴对应于 (x,y) 的二维数组。我想根据返回布尔值的某个函数标记所有点。
f(xAxis_array, yAxis_array) 返回真/假。如果是真的,我想用红色标记点,否则用黑色标记。
例如,我想得到类似的结果:
提前谢谢你!
【问题讨论】:
标签: matlab plot matlab-figure
这很容易。您可以将数据分成两部分 - 一部分满足约束,另一部分不满足。然后,您可以使用这两个部分调用plot,并对每个点进行不同的着色。因此,给定您的两个数组xAxis_array 和yAxis_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.');
第一行代码为xAxis_array 和yAxis_array 中的每对点返回True/False。这将是一个logical 向量,它告诉您对应点是True 还是False。完成后,我们使用逻辑索引将应标记为红色的点和应标记为黑色的点分开。将它们分开后,我们使用单个 plot 调用,以便那些应该是红色的坐标被标记为该颜色,而那些是黑色的则被标记为该颜色。
【讨论】: