发表时间:2022-03-25来源:网络
打开MATLAB,在下方命令行窗口里输入代码guide,敲下回车。
然后的内容我就不赘述了,网上有很多很好的入门链接,这里随便摘录几篇:
这篇原理讲的很清楚,可惜例子比较简单,没有涉及画图命令这篇可以用于工具书查找一些控件和调用这篇是讲画图命令的,对新手很友好,力荐关于如何创建控件、使用控件,这里不再赘述,看看上面的资料应该都懂了。这里主要列举一下一些常见的问题:
问:如何使用这些控件? 答:如下图,把左面你想要的控件用鼠标拖动过来就行了
问:如何编辑控件?
答:这个可以参考前面我列举的链接。实际上,双击你的控件,会弹出下图的框,鼠标滚轮到底,就有如下窗口。下图列举了可编辑文本框三个常用的选项。
问:如何让对应的控件使能?或者说我该怎么用这些控件?
答:以普通按钮为例,你按下按钮后,就会执行Callback函数。所以,你只需要对Callback函数里写上你想执行的功能,每当你按下按钮时,Callback函数里的代码就会被执行一遍。找到回调函数的办法是:右键你想寻找的控件,然后查看回调->Callback
正弦波信号,生成,指定频率 f,幅度 A,相位 Φ 的正弦波,时长为 L,采样频率 fs 为 1000 Hz,并在 GUI窗口中显示。
方波信号,生成指定幅度 A、占空比 a 的方波信号,时长为 L,采样频率 fs 为 1000 Hz,并在 GUI 窗口 中显示。
混合正弦信号,生成一频率为 f1,另一频率为 f2,幅度均为 A,时长为 L,相位为 0 的混合正弦波信号,采 样频率 fs 为 1000 Hz,并在 GUI 窗口中显示。
生成服从高斯分布的白噪声序列,时长为 L,方差为 σ2,并在 GUI 窗口中显示。
生成服从均匀分布的白噪声序列,时长为 L,方差为 σ2,并在 GUI 窗口中显示。
我就以本次大作业的代码为例子,这里偷个懒,我就不写具体如何操作的了,直接放结果,读者只需拖动工具栏,配置得和我一样就行。注意控件命名也要一致,改命名就是改编辑菜单栏里的Tag属性,没列举的代表命名不重要。

前面讲了如何找到对应控件的Callback函数,只需右键你想寻找的控件,然后查看回调->Callback即可。当然,也可以直接在m文件里找到对应的代码。然后以控件3为例,将对应的Callback函数替换为如下代码(所有edit1~7都需要如此替换,内容都是一致的):
function edit3_Callback(hObject, eventdata, handles) a=str2num(get(hObject,'String')); % 得到其中的字符串并将其转换为数字 if isempty(a) % 判断是否为数据,若否,则将其设置为0 set(hObject,'String','0'); end guidata(hObject,handles); % 更新数据大概解释一下这些代码的意思。
get(hObject,'String')是获取该可编辑文本框里的文本内容,返回值是string类型str2num(get(hObject,'String'))是将获取的文本内容转换为数字类型,如果无法转换,就返回空如果返回值为空,为了防止程序出错,我们应该将其值设置为某个安全的值(例如0),这里使用函数set(hObject,'String','0')实现guidata(hObject,handles)是更新数据,方便其他控件调用(后面会讲到)将弹出式菜单内容如此配置,因为是5行,就会有5个选项:
为了方便,在选择对应菜单操作时,就可以直接分配一个默认的初始化值。因此,将弹出式菜单的Callback函数如此配置(当然,不这么做也是不影响程序的正常运行的):
这里没什么好说的,应该都能看懂吧。num = get(handles.popupmenu1, 'Value')是获取选项菜单当前值是几,并且执行如下初始化操作。其中set(handles.edit1,'String','0')就是把可编辑文本控件1的值置为0,set(handles.edit5,'Enable','off')是禁止该可编辑文本的更改,set(handles.edit5,'Enable','on')是打开该可编辑文本的更改。
显示图形本质上就是plot就行了。但是plot的参数都在可编辑文本框里,那么如何获取呢?仿照上面的例子,使用get函数就可以了。所以,下面的代码看起来吓人,其实前面都只是在获取其他控件的值而已,重头戏其实只有一行plot。
function pushbutton1_Callback(hObject, eventdata, handles) f1=str2double(get(handles.edit1,'String')); % 获得频率f1 A=str2double(get(handles.edit2,'String')); % 获得幅度A P=str2double(get(handles.edit3,'String')); % 获得相位P L=str2double(get(handles.edit4,'String')); % 获得时长L a=str2double(get(handles.edit5,'String')); % 获得占空比a% f2=str2double(get(handles.edit6,'String')); % 获得频率f2 s2=str2double(get(handles.edit7,'String')); % 获得方差s2 x=0:1/1000:L; % 定义x范围以及步长 num = get(handles.popupmenu1, 'Value'); % 获取选项菜单值 if num == 1 % 正弦 y=A*sin(2*pi*f1*x+P); % 计算该函数y值 elseif num == 2 % 方波 y=zeros(1,length(x)); y(mod(x,1/f1)上一篇:免费领100本Python书籍
下一篇:Java 基础入门训练
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务