主要目的:
利用matlab设计一个GUI界面,然后我输入一个带参数的函数(如y=a*sin(x)这种),同时给这个参数a赋值,然后还要给出x的范围,最后点击按钮画出函数图
直接上图
最终效果与这个类似,需要添加一些可编辑文本、静态文本等等这些可根据自己需要进行添加。
需要注意的点:
直接在命令窗口输入guide打开GUI生成工具。静态文本可以不用管,直接拖到Fig里编辑一下即可。但是可编辑文本,需要修改它的tag,这个tag可以理解为给这个控件起了个名字以便后续编程方便。
弄完控件之后,记得CTRL+S保存一下,就会自动跳到代码部分。
其他不用管直接找到按钮的回调函数那,我这里给按钮设置的tag是Plot_button,所以在代码部分找到下图部分
需要执行什么操作在这里编程即可
注意那些handles后面的名称,都是根据刚才给每个控件设置的tag而定的
cla % 清除坐标轴图案
equation = get(handles.InEquation,'string'); % 获取输入的函数
Xmin = get(handles.Xmin_In,'string'); % 获取输入的x范围
Xmax = get(handles.Xmax_In,'string');
a = get(handles.Value_a,'string'); % 获取输入的a范围
idx = strfind(equation,'a'); % 找到函数里a在哪并进行替换
equation(idx) = num2str(a);
x_range = str2num(Xmin):0.1:str2num(Xmax); % 设置x范围
f = str2func(['@(x)',equation(3:end)]); % 利用函数句柄画图
y = f(x_range);
plot(x_range,y)
grid on;