Borrar filtros
Borrar filtros

Running an m file by clicking on a pushbutton in GUI

40 visualizaciones (últimos 30 días)
Henry
Henry el 28 de Jun. de 2013
Comentada: Walter Roberson el 28 de En. de 2021
Hiya,
I'm making a GUI using GUIDE and I want it to run a different file when i press a push button.
The file itself runs a few other files when it's run and gives an output of a series of variables with their values.
I was hoping I would be able to load and display these values in the GUI by running the file, and then be able to edit the values (still in the GUI).
Then, by pressing another pushbutton the GUI calls the file to calculate it's outputs using the updated variables and displays it.
I've tried using
run('myfile.m')
in the pushbutton callback, but the workspace isnt updated, so I'm not sure if it's actually being run or not.
alternatively I could call the GUI from the file, but I don't know how to do this either
Any help would be brilliant
Thanks
  6 comentarios
Amit Patankar
Amit Patankar el 28 de En. de 2021
@Walter Roberson I am using a push button in App designer and in it's callback, I have written a Run command to run *.m files.
Just like when a *.m file is ran in command window of MATLAB and it loads all parameters into workspace, I expect that the push button should do it for me.
Walter Roberson
Walter Roberson el 28 de En. de 2021
Well, it is loading the parameters into the workspace -- the workspace of the callback function.
As I wrote above:
Do not use run() to try to work with variables in the base workspace: use evalin('base') for that.

Iniciar sesión para comentar.

Respuesta aceptada

David Sanchez
David Sanchez el 28 de Jun. de 2013
To run a m-file from a GUI, just insert the name of the m-file in the pushbutton callback function. It works the other way around. To open a GUI from a m-file, just type the name of the GUI in the m-file.
If you want your GUI to display values calculated within the m-file, you could define variables as global in both the GUI and the m-file.
If what you want is to display/send values to the workspace, you could use
assignin
from both your GUI or you m-file.
type
help assigin
or
doc assigin
in the command window to get all the information about the assigin built-in function.
  4 comentarios
Henry
Henry el 28 de Jun. de 2013
I've managed to solve this now, thank you for the help
Minhaz Bin Malik
Minhaz Bin Malik el 9 de Jun. de 2014
Hello Henry, I am having the same problem like yours. Could you please share, how you eventually managed?

Iniciar sesión para comentar.

Más respuestas (2)

Jan
Jan el 28 de Jun. de 2013
You can obtain the results created by your function simply by catching them as outputs:
Result = myfile;
This is completely the same as for calling sin(0.1), where you will store the results in an output also.
Any kind of remote controlled assignments of variables cannot compete with this clean and clear method.
  4 comentarios
Walter Roberson
Walter Roberson el 10 de Feb. de 2019
motevalizadeh comments
right
Margarita Diaz-Cortes
Margarita Diaz-Cortes el 13 de Feb. de 2020
Your reply just made my day, thank you so much!

Iniciar sesión para comentar.


Tonghui Zhang
Tonghui Zhang el 9 de Mayo de 2019
Hi guys,
I am confronted with a similar problem. When I use run command in my GUI, it works well. But after I generated an exetutable program(exe), the run function report that the specified m file cannot be found. When I use a constant path to the run function. It reports that the m script cannot be executed. But the problem is that I can run it very well in guide. Are there anyone can help me?
Thanks a lot
  2 comentarios
Walter Roberson
Walter Roberson el 13 de Mayo de 2019
In another post we discussed that run is not permitted in compiled executables. You indicated that you were able to eval instead
Tonghui Zhang
Tonghui Zhang el 13 de Mayo de 2019
Yeah,
This is a previous question.

Iniciar sesión para comentar.

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by