我创建了一个 GUI 来设置参数并在另一个 m-File 中使用这些参数。我知道在 GUI 中创建的变量与输入变量到 m 文件位于不同的工作区中。出于这个原因,我正在尝试使用global variables
,但没有成功:变量进入 m-File 为空。
我有一个具有 3 个编辑框的 GUI,用户可以使用此代码设置参数(0 或 1)(仅显示一个编辑框的代码):
function density_Callback(hObject, eventdata, handles)
% hObject handle to density (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of density as text
% str2double(get(hObject,'String')) returns contents of density as a double
global density
density = str2double(get(hObject, 'String'));
global Variavel_1
assignin('base', 'Variavel_1', density);
使用以下代码从 GUI 按钮调用 m 文件:
function calculate_Callback(hObject, eventdata, handles)
% hObject handle to calculate (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
test %m-File that uses variables set in GUI
并且 m-File 应该使用此Variavel_1
代码以及此代码(test.m)中剩余编辑框中的其他内容:
global Variavel_1
global Variavel_2
global sum
Variavel_1
Variavel_2
sum = Variavel_1 + Variavel_2
但我所拥有的只是所有这些变量都是空的!(我知道我可以将此代码放在 GUI 代码中,但这不是真正的建议,因为这个简单的 m-File 总和会复杂得多,所以我需要将变量转到 m-File)。
Variavel_1 = []
Variavel_2 = []
Sum = []
谁能理解为什么全局变量会失败?
提前致谢!