Linkdata + Brush Not Responding

I want to delete data points from a plot using brush and remove. I want these points to be deleted from my workspace variables. I can't get it to work when I have any pause or waitfor commands afterwards. It works fine when nothing follows. This is part of my code:
>fig=plot(X,Y);
brush on
linkdata on
waitfor(fig)
fig2=plot(X,Y)

 採用された回答

Walter Roberson
Walter Roberson 2012 年 6 月 6 日

0 投票

What is your intention by using waitfor() ? waitfor() waits for the given object to be deleted.
If your intention is to give an opportunity for the user to do the brushing, then you would usually just return from the function at that point, having already established some control (e.g., 'Done' pushbutton) for the user to signal readiness to continue on.

7 件のコメント

Adam
Adam 2012 年 6 月 6 日
Yes. I just want to give the user an opportunity to do brushing.
Adam
Adam 2012 年 6 月 6 日
Is there anyway to do this without creating several functions? I just want 1 m file
Walter Roberson
Walter Roberson 2012 年 6 月 6 日
Recursion and a state-machine. But I do NOT recommend that approach, not for this purpose.
Just put your several functions into your one .m file.
Adam
Adam 2012 年 6 月 6 日
I've never done this multiple function technique. I'm a new programmer. I'm thinking something like this, but it's only making matters worse:
function [X,Y,Area,SR]=UPDAreaFinder()
%lines of code
figP=plot(X,Y);
linkdata on
brush on
figP=uicontrol('String','Done', 'Callback', {@part2function}');
function Areatotal=part2function(X,Y,Area,SR)
%lines of code
Walter Roberson
Walter Roberson 2012 年 6 月 6 日
Possibly
function UPDAreaFinder(X, Y, Area, SR)
%lines of code
plot(X,Y);
linkdata on
brush on
uicontrol('String','Done', 'Callback', {@part2function, X, Y, Area, SR}');
function part2function(src, evt, X, Y, Area, SR)
%lines of code
Notice I did not return the Areatotal -- you cannot return values from these kinds of callbacks.
See though
http://matlab.wikia.com/wiki/FAQ#How_can_I_share_data_between_callback_functions_in_my_GUI.3F
Adam
Adam 2012 年 6 月 7 日
It's almost there. Thanks. The only problem is X,Y are not being passed in the updated form from the brushing and deleting.
Adam
Adam 2012 年 6 月 7 日
It all works now. Thanks. I used assignin in the first function for X and Y and evalin in the second function for X and Y.
I don't understand why it's not sending the right X and Y with the callback.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCreating, Deleting, and Querying Graphics Objects についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by