从MATLAB中的编辑框中获取数值

时间:2013-08-07 19:15:46

标签: matlab matlab-figure

我设计了一个带有resize选项的GUI。允许用户在2个提供的编辑框中输入图像大小。

function x_Callback(hObject, eventdata, handles)
% hObject    handle to x (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
user_entry_X = str2double(get(hObject,'string'));
if isnan(user_entry_X)
 errordlg('You must enter a numeric value','Bad Input','modal')
 uicontrol(hObject)
return
end

上面的代码适用于edit box X。如果用户提供非数字输入,则会导致错误。但我没有得到如何获取输入的数值。我有一个pushbutton名为resize,在按下时,在编辑框图像中输入数字后应调整大小。 我应该在resize_callback函数中使用什么?请帮帮我。

1 个答案:

答案 0 :(得分:3)

您可以使用

获取编辑框的值
S = get(editBoxHandle, 'string');

如果是数值,则将其转换为

N = str2num(S);

如果您只想让字符串中的数字混合字母和数字,则此代码

S = '123abc456xyz';
N = cell2mat(regexp(S, '\d+', 'match')); 
disp(N)

提供N=123456(来自此SO answer)。