2

我设计了一个带有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功能中使用什么?请帮我。

4

1 回答 1

3

你可以得到编辑框的值

S = get(editBoxHandle, 'string');

如果是数值,则进行转换

N = str2num(S);

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

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

给出N=123456(来自this SO answer)。

于 2013-08-07T20:06:49.043 回答