How to run a matlab function using a button pushed in AppDesigner

65 ビュー (過去 30 日間)
Myssipsa Mehraz
Myssipsa Mehraz 2021 年 7 月 19 日
コメント済み: Myssipsa Mehraz 2021 年 7 月 22 日
Hello everyone,
My question is simple. I want to run a function in matlab base workspace using a button pushed in AppDesigner.
I added a button in my app, and create a callback with this instruction :
run ('Path of my function');
My function is (just for the test) :
function r=addition(a,b)
r=a+b;
end
Thank you in advance.
  6 件のコメント
Jan
Jan 2021 年 7 月 21 日
Using assignin to create variables in the base workspace and calling a script is a shot in your knee. Convert the script into a function and provide the variables as input arguments. Then it is very easy to call your function from inside the callback of a GUI.
Myssipsa Mehraz
Myssipsa Mehraz 2021 年 7 月 22 日
I tested it and it works. Thank you.

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

採用された回答

Matt J
Matt J 2021 年 7 月 19 日
編集済み: Matt J 2021 年 7 月 19 日
The typical way would be to invoke addition() from your callback the way you would from any ordinary function,
function ExecuterButtonPushed(app,event)
a=app.aEditField.Value;
b=app.bEditField.Value;
r=addition(a,b);
end
  6 件のコメント
Myssipsa Mehraz
Myssipsa Mehraz 2021 年 7 月 21 日
@Jan : Thank you for your answer. I posted a comment in the answer of @Matt J where i explain more what i need to do. Maybe it will be more clearly with this explanations.
Matt J
Matt J 2021 年 7 月 21 日
編集済み: Matt J 2021 年 7 月 21 日
Maybe it will be more clearly with this explanations.
I'm afraid not. What you have not explained is why the machine you are controlling needs to receive its instructions from a Matlab script as opposed to an mfunction. As Jan points out, you could easily convert your script to a function and invoke that function directly from the callback, as my original answer suggests.
Also, even if you insist on using a script, it is not clear what problems you are currently experiencing by running your script from the callback. I can only guess it is because there are additional variables that the script needs besides the EditField values and which reside in the base workspace. If so, why not just bring those extra variables into the app where the callback can see them? Make them inputs to the app constructor and store them in properties.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSoftware Development Tools についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by