为什么我不能在编辑文本中输出?
% --- 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
请你帮帮我吗?
答案 0 :(得分:0)
s
的数据类型是什么?使用whos s
查找。
如果它不是double,char或cell,那么您将无法将其指定为编辑框的字符串。这正是错误消息告诉您的内容。
我没有符号数学工具箱,所以我无法检查代码,但我猜s
是一个符号数组。如果是这种情况,请参阅char
{{1}}以将符号数组转换为字符串,以便正确分配。
答案 1 :(得分:0)
可能只是因为在这一行的末尾有一个'你不想要的东西:
set(handles.e,'string',s)';
如果你尝试怎么办?
set(handles.e,'string',s);