【问题标题】:Getting numerical value from edit box in MATLAB从MATLAB中的编辑框中获取数值
【发布时间】:2013-08-08 04:06:49
【问题描述】:

我设计了一个带有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 boxX。如果用户提供非数字输入,则会导致错误。但我不知道如何获取输入的数值。我有一个名为resizepushbutton,按下它后在编辑框图像中输入数字后应该会调整大小。 我应该在resize_callback 函数中使用什么?请帮帮我。

【问题讨论】:

    标签: matlab matlab-figure


    【解决方案1】:

    可以通过

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

    如果是数值,则进行转换

    N = str2num(S);
    

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

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

    N=123456(来自这个SO answer)。

    【讨论】:

    • 谢谢,我怎样才能清除同一个编辑框?我有一个名称为reset 的按钮。按下该编辑框后应该显示零值,因为不应该出现任何内容。
    • get 的孪生函数将让您控制编辑框内容:set(editBoxHandle, 'string','') 其中'' 代表空字符串。
    猜你喜欢
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多