Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: Capture break in mata
From
George Vega Yon <[email protected]>
To
[email protected]
Subject
st: Capture break in mata
Date
Tue, 1 Oct 2013 15:48:48 -0300
Dear Stata listers,
I've been reading Mata's documentation and I cannot find a way to
simply of working with -capture- block of code. I know that in Stata
one can create -capture- blocks such as
capture {
...code...
}
if (_rc) {
...code....
}
But I haven't seen something like that in Mata. What I'm actually
looking for is to, from within Mata, run a -while- loop and, if the
break key is pressed, do something.
Checking functions -setbreakintr()-, -resetbreakkey()- and
-breakkey()- I know that I can suppress the break key from
interrupting the program, but as I change its behavior the
-breakkey()- function doesn't captures if the break key has been
pressed (which is what I understand from the Diagnostics section in
the help file).
I've tried coding somethign like this
mata:
mata clear
real scalar myfun() {
/* Definitions */
real scalar i, j, bk;
real scalar x;
/* Setting breakkey interrupt off */
bk=setbreakintr(0);
i=1;
while(!breakkey() & i < 1e4)
for(j=1;j<=1000;j ) x=i;
/* Restoring breakkey and its mode */
breakkeyreset();
(void) setbreakintr(bk);
return(x);
}
myfun();
end
For which, once running, I press the key Break, hoping that the while
loop stops, the x value stores the last -i- used and the breakkey
behavior restores; and what I get this message: "Break disallowed at
this time", and the program continues and returns 1e4 (what means that
it stayed in the loop until i=1e4, i.e. the breakkey() value never
changed from 0).
I know that -setbreakintr(0)- is intended to be used in the same way
that Stata's -nobreak- blocks, but is there any way that I can work
this out using solely Mata?
Thank you and excuse for any nonsense that I'm probably saying.
Best regards,
George Vega Yon
7 647 2552
http://cl.linkedin.com/in/georgevegayon
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/