Using an external function in GUI closes the interface

1 view (last 30 days)
Inês
Inês on 16 Jul 2014
Edited: Inês on 17 Jul 2014
Hello!
I am using an external function I made outside GUI (heart_rate.m) and I am using it in a push button in GUI. The problem is that every time I press the button, the functions runs and returns the value I want, but after the interface just closes by itself.
At the moment the code is something really basic like this:
function pushbutton_connect_Callback(hObject, eventdata, handles)
(..)
global HR;
HR = heart_rate(data1,sr);
msgbox(sprintf('Your heart rate is: %3.f', HR));
The msgbox appears and shows the correct number for data1, but then the thing just closes. I have also used a different external function just to test and the behaviour is the same.
Any idea on what is the problem? I am relatively new to guide, so I apologize in advance for any mistakes I may say :)
  3 Comments
Inês
Inês on 17 Jul 2014
The whole gui closes. For this function there is only this portion of code, and its not connected with to any other function on gui as I am still testing it.
I narrowed to problem to the line where I call the function heart_rate. If I run the code without calling the function (i.e. comment that line) the message box appears and nothing closes. Otherwise when I run without the msgbox the interface closes down again.
If it helps, the function heart_rate is this one: heart_rate

Sign in to comment.

Accepted Answer

Geoff Hayes
Geoff Hayes on 17 Jul 2014
The heart_rate function, if like that in the above link, has as its first line
close all; clc;clear all;
Calling close all would close the GUI yet still allow the message box to display. Try removing this line and re-running the application.
  1 Comment
Inês
Inês on 17 Jul 2014
I forgot to mention that I had deleted that line to avoid such an error. Unfortunately the GUI still closes and no error is displayed :\
EDIT: just understood what the problem was. I edited heart_rate from the link and included some children functions, one of which had close all. Now it'a running.
Thanks Geoff! What a dumb mistake :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!