转换str2num时出现MATLAB错误

时间:2013-05-17 05:25:50

标签: matlab runtime-error

我对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行,它不会给出任何错误。 我希望有人可以帮助解决问题。

1 个答案:

答案 0 :(得分:0)

从清晰的工作区开始,

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

或更好:

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

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