Matlab 如何将从GUI输入的数值传递到.m文件?
我试图在我的.m/GUI文件中编写一个代码,当我按下按钮时,它可以将从GUI中的“编辑文本”字段(称为“编辑1”)获得的某个值传递到.m文件。 在GUI中说,我有: 我想做的是获取“fc”和“slump”字段中输入的值,并将其用于.m文件中的数学运算。在GUI中,我编写了在“calculate”按钮回调下面运行我的m文件的代码,在我的.m文件中,我编写了:Matlab 如何将从GUI输入的数值传递到.m文件?,matlab,user-interface,matlab-guide,matlab-gui,Matlab,User Interface,Matlab Guide,Matlab Gui,我试图在我的.m/GUI文件中编写一个代码,当我按下按钮时,它可以将从GUI中的“编辑文本”字段(称为“编辑1”)获得的某个值传递到.m文件。 在GUI中说,我有: 我想做的是获取“fc”和“slump”字段中输入的值,并将其用于.m文件中的数学运算。在GUI中,我编写了在“calculate”按钮回调下面运行我的m文件的代码,在我的.m文件中,我编写了: value = str2num(get(handles.edit1,'String')); 作为回报,当我运行UI时,我会得到未定义的变量
value = str2num(get(handles.edit1,'String'));
作为回报,当我运行UI时,我会得到未定义的变量“handles”或类“handles.edit1”
。我应该在.m文件或GUI编辑器中编写什么来获取这些值
如有任何解决方案/帮助,将不胜感激。谢谢 以编程方式创建GUI和回调函数
不确定您对以编程方式执行此操作的开放程度,但下面是一个获取字段值并在名为Calculate()
的回调函数中使用它们的设置。另一个清除字段的回调函数称为Reset()
。以下是命令窗口中打印的GUI和回调函数的输入:
按下按钮时会触发回调函数,该按钮由设置为需要运行的相应函数的.ButtonPushedFcn
属性指示
完整脚本:
使用MATLAB R2019b运行感谢MichaelTr7给出的全面、清晰的答案以及GUI重做!非常感谢。帮助了很多。@yacika没问题,很乐意帮忙。:)
%******************************************************%
%GUI ELEMENT SETUP/PROPERTIES%
%******************************************************%
%App figure properties%
App = uifigure();
App.Name = "GUI";
X_Position = 200;
Y_Position = 200;
Height = 300;
Width = 600;
App.Position = [X_Position Y_Position Width Height];
%Requirements sub-panel properties%
Input_Panel = uipanel('Parent',App);
Input_Panel.Title = "Requirements";
Input_Panel.TitlePosition = 'centertop';
Input_Panel.FontWeight = 'bold';
X_Position = 50;
Y_Position = 75;
Height = 120;
Width = 250;
Input_Panel.Position = [X_Position Y_Position Width Height];
%Button label 1 properties%
Label_1 = uilabel('Parent',Input_Panel);
X_Position = 15;
Y_Position = 20;
Height = 30;
Width = 60;
Label_1.Position = [X_Position Y_Position Width Height];
Red = 0.2; Green = 0.2; Blue = 0.2;
Label_1.BackgroundColor = [Red Green Blue];
Label_1.FontColor = "white";
Label_1.HorizontalAlignment = "center";
Label_1.Text = "Slump'";
%Button label 2 properties%
Label_2 = uilabel('Parent',Input_Panel);
X_Position = 15;
Y_Position = 60;
Height = 30;
Width = 60;
Label_2.Position = [X_Position Y_Position Width Height];
Red = 0.2; Green = 0.2; Blue = 0.2;
Label_2.BackgroundColor = [Red Green Blue];
Label_2.FontColor = "white";
Label_2.HorizontalAlignment = "center";
Label_2.Text = "fc'";
%FC field properties%
FC_Field = uieditfield('Parent',Input_Panel);
X_Position = 100;
Y_Position = 60;
Height = 30;
Width = 90;
FC_Field.Position = [X_Position Y_Position Width Height];
%Slump field properties%
Slump_Field = uieditfield('Parent',Input_Panel);
X_Position = 100;
Y_Position = 20;
Height = 30;
Width = 90;
Slump_Field.Position = [X_Position Y_Position Width Height];
%Mpa label properties%
Mpa_Label = uilabel('Parent',Input_Panel);
X_Position = 200;
Y_Position = 60;
Height = 30;
Width = 80;
Mpa_Label.Position = [X_Position Y_Position Width Height];
Mpa_Label.Text = "MPa";
%Cm label properties%
Cm_Label = uilabel('Parent',Input_Panel);
X_Position = 200;
Y_Position = 20;
Height = 30;
Width = 80;
Cm_Label.Position = [X_Position Y_Position Width Height];
Cm_Label.Text = "cm";
%Calculate button properties%
Calculate_Button = uibutton('Parent',App);
X_Position = 400;
Y_Position = 150;
Height = 40;
Width = 160;
Calculate_Button.Position = [X_Position Y_Position Width Height];
Calculate_Button.Text = "Calculate";
Red = 0.7; Green = 0.7; Blue = 0.7;
Calculate_Button.BackgroundColor = [Red Green Blue];
%Reset button properties%
Reset_Button = uibutton('Parent',App);
X_Position = 420;
Y_Position = 105;
Height = 35;
Width = 120;
Reset_Button.Position = [X_Position Y_Position Width Height];
Reset_Button.Text = "Reset";
Reset_Button.FontWeight = 'bold';
Reset_Button.FontSize = 20;
Red = 0.7; Green = 0.7; Blue = 0.7;
Reset_Button.BackgroundColor = [Red Green Blue];
%Callback function configurations%
Calculate_Button.ButtonPushedFcn = @(Calculate_Button,event) Calculate(FC_Field,Slump_Field);
Reset_Button.ButtonPushedFcn = @(Calculate_Button,event) Reset(FC_Field,Slump_Field);
%******************************************************%
%CALLBACK FUNCTION DEFINITIONS%
%******************************************************%
%Calculate callback function definition%
function [] = Calculate(FC_Field,Slump_Field)
fprintf("Calculating Using:\n");
fprintf("fc': %f\n",str2num(FC_Field.Value));
fprintf("Slump: %f\n",str2num(Slump_Field.Value));
end
%Reset callback function definition%
function [] = Reset(FC_Field,Slump_Field)
fprintf("Resetting/clearing fields\n");
FC_Field.Value = "";
Slump_Field.Value = "";
end