MATLAB GUI使用set时出错

时间:2014-06-19 14:15:51

标签: matlab

为什么我不能在编辑文本中输出?

% --- Executes on button press in f.
function f_Callback(hObject, eventdata, handles)
% hObject    handle to f (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
clc
syms t
a=str2double(get(handles.b1,'string'));
b=str2double(get(handles.c1,'string'));
y=eval(get(handles.a1,'string'));
u=a-b;
m=abs(y).^2;
r=int(m,t);
g1=subs(r,t,a);
h=subs(r,t,b);
fh=g1-h;
s=fh./u
set(handles.e,'string',s)';

命令窗口显示答案而不是编辑文本。错误是:     使用set时出错     错误:mxArray必须是double,char或cell

Error in signalproject2>f_Callback (line 284)
set(handles.e,'string',s)';

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

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

Error in @(hObject,eventdata)signalproject2('f_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback

请你帮帮我吗?

2 个答案:

答案 0 :(得分:0)

s的数据类型是什么?使用whos s查找。

如果它不是double,char或cell,那么您将无法将其指定为编辑框的字符串。这正是错误消息告诉您的内容。

我没有符号数学工具箱,所以我无法检查代码,但我猜s是一个符号数组。如果是这种情况,请参阅char {{1}}以将符号数组转换为字符串,以便正确分配。

答案 1 :(得分:0)

可能只是因为在这一行的末尾有一个'你不想要的东西:

set(handles.e,'string',s)';

如果你尝试怎么办?

set(handles.e,'string',s);