私はいくつかのグラフィックを持っています。ユーザーは選択したポイントを削除できます。MATLABでポイントを削除する方法を制御するには?
ユーザーが削除したポイントを正確に知るにはどうすればよいですか? 「削除」とは、「ブラシ/選択ツール」などのMATLABツールを使用してから「削除」ボタンをクリックすることです。
私はいくつかのグラフィックを持っています。ユーザーは選択したポイントを削除できます。MATLABでポイントを削除する方法を制御するには?
ユーザーが削除したポイントを正確に知るにはどうすればよいですか? 「削除」とは、「ブラシ/選択ツール」などのMATLABツールを使用してから「削除」ボタンをクリックすることです。
あなたが最初にプロットされx
とy
データを保存する場合は、ユーザーが削除されたポイントを決定するためのポイントを削除した後、プロットの'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
ますあなたがRR間隔をプロットしているというコメントの中で述べたように、あなたのx
データは、繰り返し値のない単調増加ベクトルの時間ポイントでなければなりません。そのように、あなたは次のようにして削除されたポイントを見つけることができます:これはまだそこにあるポイントの削除されたポイントの1と0であなたにlogical indexを与える
removedIndex = ~ismember(x,xRemaining); %# Get a logical index of the points
%# removed from x
。ユーザーにより削除のみ隣接する二つのポイントは(あなたが説明するように、あなたは確かにいくつかのチェックを行いたいかもしれないが)があった場合は、次のように簡単に平均値で、これら2点を置き換えることができます。
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
私はRR間隔ビューアプログラムを作成しています。「スムーズ削除」を追加したいと思うオプションがあります.2ポイントのユーザーを選択すると、この間にライン[A、B]はA1(x/2、y/2)のようなコードで新たなポイントを表示しますが、主な問題は削除されたポイントのコードを取得することです:( – AndrewShmig
@Andrew:あなたがそれをどうやってできるかを示してください。 – gnovice