【发布时间】:2014-12-10 16:24:54
【问题描述】:
我有一个 MATLAB 程序,我正在为它做一个 GUI。它有几个输入和输出,除了一个之外都工作正常,我不知道为什么。
输入是Area_Cov,这个输入在代码中没有改变,只是使用而已。
在 GUI 中,我为它使用了一个编辑框,将它的标签命名为“Area_Cov” 这是编辑框回调函数,我在许多其他框上使用了相同的代码,效果很好。
function Area_Cov_Callback(hObject, eventdata, handles)
% hObject handle to Area_Cov (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 Area_Cov as text
% str2double(get(hObject,'String')) returns contents of Area_Cov as a double
v = (get(hObject,'String')); %get recently entered string
if (str2num(v) <= 0)
waitfor(warndlg('Area value has to be real','!! Warning !!'))
(warndlg('The value will be set to 10452','!! Warning !!'))
set(hObject,'String',10452);
else
Area_Cov = handles.Area_Cov; %update saved value
end
x = get(handles.Area_Cov,'String');
if isempty(x)
waitfor(warndlg('Must specify Area Covered','!! Warning !!'))
(warndlg('Value set to 10452','!! Warning !!'))
set(hObject,'String',10452);
end
guidata(hObject,handles)
当我按下按钮计算时,我有以下关于 Area_Cov 的信息
Area_Cov=handles.Area_Cov;
assignin('base', 'Area_Cov', Area_Cov);
当我运行代码并按下按钮时,一切似乎都运行良好。 但是当我尝试在 matlab 中检查 Area_Cov 的值时,我总是得到值 259.0017
我删除了那个框,又写了一遍,把Area_Cov改成Area_Covered,检查matlab代码,代码中没有任何地方,或者GUI代码,Area_Cov除了编辑框还有输入,没有任何地方这个值是否等于 259.0017。 此外,如果我不更改框中的值,最初为 10452,则该值将保持不变,否则将仅更改为 259.0017。
代码在许多其他盒子上都可以正常工作,所以我认为这不是问题。
以前有人遇到过这个问题吗?帮助
【问题讨论】:
标签: matlab user-interface matlab-guide