gpt4 book ai didi

matlab - 如何控制MATLAB中的点删除?

转载 作者:行者123 更新时间:2023-12-04 06:39:12 35 4
gpt4 key购买 nike

我有一些图形。用户可以删除任何选定的点。

我怎么知道用户删除了哪些点?
“已删除”是指使用 MATLAB 工具,例如“画笔/选择工具”,然后单击“删除”按钮。

最佳答案

如果您保存 xy最初绘制的数据,您可以将其与剩余的 'XData' 进行比较或 'YData' 在用户删除点以确定删除哪些点后的图中:

x = 1:10;           %# The initial x data
y = rand(1,10); %# The initial y data
hLine = plot(x,y); %# Plot the data, saving a handle to the plotted line
%# ...
%# The user deletes two points here
%# ...
xRemaining = get(hLine,'XData'); %# Get the x data remaining in the plot
yRemaining = get(hLine,'YData'); %# Get the y data remaining in the plot

您在评论中提到您正在绘制 R-R 区间,因此您的 x数据应该是一个没有重复值的时间点的单调递增向量。因此,您可以通过执行以下操作找到已删除的点:
removedIndex = ~ismember(x,xRemaining);  %# Get a logical index of the points
%# removed from x

这给你一个 logical index删除的点为 1,仍然存在的点为 0。如果用户只删除了两个相邻点(如您所述,尽管您可能需要进行一些检查以确保),您可以轻松地用平均值替换这两个点,如下所示:
index = find(removedIndex);  %# Get the indices from the logical vector
xNew = [x(1:index(1)-1) mean(x(index)) x(index(2)+1:end)]; %# New x vector
yNew = [y(1:index(1)-1) mean(y(index)) y(index(2)+1:end)]; %# New y vector

然后您可以相应地更新绘图:
set(hLine,'XData',xNew,'YData',yNew);

关于matlab - 如何控制MATLAB中的点删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4473577/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com