在与 2D 变量链接的图上刷数据

Brushing data on plot linked with 2D variable

我有一个二维数值数组(100x100 双精度),绘制在冲浪图上时看起来像这样:

我正在尝试 link 使用变量绘图,然后删除变量中的一些数据点(例如,两个峰之一)(使 selected 点为 0 ) 并在绘图中,通过在绘图上使用画笔工具。

问题是,当变量和绘图被 linked 时,刷亮工具 selects 落在 selected 区域的点的整行,如下所示:

数据link编辑时的选择(我想避免这种select离子):

相同 selection,数据未 linked(这是我想要的,但有 linked 数据):

有没有办法避免这种情况,select只有我想要的点数?

有关此现象的详细信息,请参见此处: https://uk.mathworks.com/help/matlab/ref/matlab.graphics.interaction.internal.brush.html#mw_b080675e-afd3-4251-99d8-a8273e85dc6c

我也尝试过使用其他类型的绘图(网格、天空等),但找不到任何解决方案。

作为最小的可重现示例,您可以使用以下代码:

PeaksVariable = peaks;
surf(PeaksVariable)
linkdata on
brush on

您可以通过

获取刷过的数据点
PeaksVariable = peaks;
brush on;
s = surf( PeaksVariable );
b = logical( s.BrushData );

然后将刷点设置为你想要的任何值

PeaksVariable( b ) = NaN;

并可选择使用更新后的数据变量更新表面

s.ZData = PeaksVariable;