1

我对matlab完全陌生,这是我的第一个问题。我找到了这样的程序

x = inputdlg('foo');
x = str2num(x{1})

并尝试从中制作一些 gui,将此行放入按钮的回调函数中:

x=get(handles.edit1, 'String')
x=str2num(x{1})

它有效,但不是在我用不同的变量添加这个相同的东西之后

y=get(handles.edit2, 'String')
y=str2num(y{1})

命令窗口说

Cell contents reference from a non-cell array object.

Error in regresilinear>pushbutton1_Callback (line 128)
x=str2num(x{1})

Error in gui_mainfcn (line 96)
        feval(varargin{:});

Error in regresilinear (line 42)
    gui_mainfcn(gui_State, varargin{:});

Error in
@(hObject,eventdata)regresilinear('pushbutton1_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback

我发现命令窗口的输出在运行时是不同的,而不是使用相同的输入。当它出现错误时:

x =

0 1 2 3

没有时(第一次)

x = 

    '0 1 2 3'

如果我删除 str2num 行,它不会给出任何错误。我希望有人可以帮助解决问题。

4

1 回答 1

0

从一个清晰的工作空间开始

x=get(handles.edit1, 'String');
x=str2num(x);

或更好:

x=str2num(get(handles.edit1, 'String'));

{}用于访问元胞数组的元素。您可能正在尝试在字符串上使用它,这就是您收到该错误的原因。

于 2013-05-17T05:57:50.153 回答