Running an m file by clicking on a pushbutton in GUI
24 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Amit Patankar
2021 年 1 月 28 日
@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
2021 年 1 月 28 日
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.
採用された回答
David Sanchez
2013 年 6 月 28 日
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 件のコメント
Minhaz Bin Malik
2014 年 6 月 9 日
Hello Henry, I am having the same problem like yours. Could you please share, how you eventually managed?
その他の回答 (2 件)
Jan
2013 年 6 月 28 日
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 件のコメント
Tonghui Zhang
2019 年 5 月 9 日
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 件のコメント
Walter Roberson
2019 年 5 月 13 日
In another post we discussed that run is not permitted in compiled executables. You indicated that you were able to eval instead
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!