matlab 关于界面编程时,我希望从界面文本框接受一个函数,然后在另一个文本框输出他的导数怎么编啊?

2025-01-04 09:47:54
推荐回答(3个)
回答1:

入数据,四个按钮分别用来计算、拟合、画图、退出。
一个Axis用来显示所画的图,一个EDITOR用来输出拟合后得到的多项式系数(5阶+常数项共6个数)。
现今通过计算,可以得到6个拟合多项式,设其对应系数矩阵分别为:
a1(1×6);
a2(1×6);
a3(1×6);
a4(1×6);
a5(1×6);
a6(1×6);
共36个数值。
为了将这些数值按行显示在EDITOR输出框,我用了如下函数语句:

ABCXYZ=[a1; a2'; a3'; a4';a5';a6']';
handles.ABCXYZ=ABCXYZ;
set(handles.editor1,'string',handles.ABCXYZ)

结果是一行只显示一个数,共36行。如果我用:
handles.ABCXYZ=ABCXYZ';
set(handles.editor1,'string',handles.ABCXYZ)
效果一样不行,每行还是只有一个元素;

如果我用handles.a1=a1;
set(handles.editor1,'string',handles.a1)
结果还是一样,即:如果你想把某个行向量按显示在editor控件的某一行上,则实际只显示行向量的第一个元素;否则,则按列向量的样式一行一个地全部显示出来。

回答2:

文本框输入的是字符串
然后用sym转换为符号数据
然后求导后再用char转换为字符串,然后输出即可

回答3:

F=get(handles.gongshi,'string');
f = char(F);
x = sym('x');
f2 =['diff(' f ')'];
try
eq_expect = eval(f2);
catch exception
msgbox('please input the function in the right way!');
return
end
f3 = char(f2);
set(handles.jieguo,'string',f3);