matlab为按钮添加调用函数
时间: 2023-08-09 14:05:15 浏览: 151
在 MATLAB 中,可以为按钮添加回调函数,当用户单击按钮时,会自动调用该回调函数。可以使用 `uicontrol` 函数创建按钮,并使用 `set` 函数为其添加回调函数。
例如,创建一个简单的 GUI 界面,在界面上添加一个按钮,单击按钮时调用一个函数进行计算。假设计算函数为 `calc_function`,其输入参数为两个数字,输出结果为它们的和,那么可以按照以下步骤进行操作:
1. 创建一个 GUI 窗口,使用 `figure` 函数创建。
```
fig = figure('Name', 'My GUI', 'Position', [200, 200, 300, 200]);
```
2. 在窗口上添加一个按钮,使用 `uicontrol` 函数创建。
```
btn = uicontrol('Parent', fig, 'Style', 'pushbutton', 'String', 'Calculate', 'Position', [100, 100, 100, 50]);
```
其中,`Parent` 参数指定按钮所属的父容器,`Style` 参数指定按钮的类型,`String` 参数指定按钮上显示的文本,`Position` 参数指定按钮在父容器中的位置和大小。
3. 为按钮添加回调函数,使用 `set` 函数设置。
```
set(btn, 'Callback', @btn_callback);
```
其中,`Callback` 参数指定按钮被单击时调用的回调函数名,`@btn_callback` 表示回调函数的句柄,需要在后面定义该函数。
4. 定义回调函数 `btn_callback`,在该函数中调用计算函数进行计算,并将结果显示在 GUI 界面上。
```
function btn_callback(hObject, eventdata)
% 获取输入参数
num1 = str2double(inputdlg('Input number 1:', 'Input', 1, {'0'}));
num2 = str2double(inputdlg('Input number 2:', 'Input', 1, {'0'}));
% 调用计算函数计算结果
result = calc_function(num1, num2);
% 显示结果
msgbox(sprintf('The result is: %.2f', result));
end
```
在该回调函数中,使用 `inputdlg` 函数获取用户输入的两个数字,然后调用计算函数进行计算,最后使用 `msgbox` 函数显示计算结果。
完整的代码如下:
```
function my_gui()
% 创建 GUI 窗口
fig = figure('Name', 'My GUI', 'Position', [200, 200, 300, 200]);
% 创建按钮
btn = uicontrol('Parent', fig, 'Style', 'pushbutton', 'String', 'Calculate', 'Position', [100, 100, 100, 50]);
% 为按钮添加回调函数
set(btn, 'Callback', @btn_callback);
end
function btn_callback(hObject, eventdata)
% 获取输入参数
num1 = str2double(inputdlg('Input number 1:', 'Input', 1, {'0'}));
num2 = str2double(inputdlg('Input number 2:', 'Input', 1, {'0'}));
% 调用计算函数计算结果
result = calc_function(num1, num2);
% 显示结果
msgbox(sprintf('The result is: %.2f', result));
end
function [result] = calc_function(num1, num2)
% 计算两个数字的和
result = num1 + num2;
end
```
保存该代码为 `my_gui.m`,然后运行该文件即可看到 GUI 界面和按钮,单击按钮后会进行计算并显示结果。
阅读全文