我使用Matlabs GUID应用程序创建了一个GUI布局,基本上我的问题很简单,我有一个文本框,我想输入数据,还有一个按钮,我想显示在文本框内输入的值,文本框定义为
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
myString = get(hObject, 'String')
set(hObject,'Value',str2num(myString));
此时,我在文本框中输入了一些数值,让我们说44,现在44存储在hObject的“Value”元素中,用于此函数。
现在我想在按下按钮时输出此值
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
fHandle = @edit1_Callback
get(fHandle,'Value')
^^^在这最后一行我应该看到一些输出(因为我没有“;”允许matlab打印出数据),问题是....我得到一个错误,上面写着“转换为来自function_handle的双倍是不可能的。“ ,我不能使用指向我早期功能的功能句柄来调用“get”,感谢您的帮助!
答案 0 :(得分:1)
我会去
get(handles.edit1,'value')
您的所有uicontrol都存储在手柄中。知道你的uicontrol的标签(对于你的编辑框我想这是edit1
),你可以用handles.edit1
得到这个对象的句柄。
你甚至可以写
my_value = get(handles.edit1,'Value');