MatLab GUI 进阶知识总结
MatLab GUI 进阶知识总结
1.从一个GUI控件或者菜单栏连接到另外一个GUI界面
简述:就是你在使用一个软件时,点击了了菜单栏或者按钮时,转换到了另外一个界面
方法:在该GUI控件的CallBack中输入另外一个GUI的(.fig)的文件名,注意不加后缀
举例:一个按钮控件,需要连接的GUI界面的名称为(test.fig)
CallBack在哪儿?
1.针对按钮一类的控件:右键你创建的按钮控件,查看回调,第一个就是了
2.针对菜单栏:它的CallBack在打开菜单编辑器后,在下图,点击查看即可
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
test %输入test即可,就是折么简单 每一个按钮都是一个函数 function 包围
% --- Executes on button press in pushbutton2.
2.数组中的end它的妙用
可以用的地方:
1.数组的索引:最基础的用法
>>a = [1 2 3;4 5 6]
>>a(end,end)
>>6 % 含义 a 数组的最后一行,最后一列的那个元素
2.end用于迭代(动态存储):本人挺喜欢使用
直接上例子:
Double = [];
Single = [];
for i = 1:100
if mod(i,2) == 0
Double(end + 1) = i;
else
Single(end + 1) = i;
end
end
A = 1;
for i = 1:length(Double)
A = A * Double(i);
end
B = sum(Single);
代码的含义:
1.先定义了两个空数组Single,Double。这个在迭代前,相当于一个声明,不写的话,MatLab可能会报错
2.加入一个 for 循环,将 1 到 100 之间的所有的能被 2 整除的,也就是 2 的倍数(Double),存储到Double数组中中,不能整除的自然是奇数(Single),存储到Single数组中
3.这样做的作用:划重点,实现了数组的动态存储,这一点遇到的情况可能会很多
4.后面的一个 for 循环,实现了100以内的偶数的乘(246*8…) 和 100 以内的奇数的求和(1+ 3 + 5 + 7 + …)
注意:上面的代码用到的是(end + 1),这样才能起到更新数组,将每次循环的数组放到数组的最后面,类似于 python 的 append() 函数
3.MatLab GUI 读取edit可编辑文本框中输入的数字
注意事项:
在edit控件中输入的是字符串,为(str)类型,你如果不使用num2str()函数的话,下面的程序运算在用断点调试的时候,会显示你输入的是空 ‘[ ]’
读取流程:
1.使用 get() 函数获取到你输入到edit可编辑文本框中的数值
Num = str2num(get(handles.edit1,'String'));
%含义:将 Tag 为 edit1 的可编辑文本框,获取到人输入进去的数字(默认输入的是字符串类型,所以需要转换,举例:你输入的是:123,但是MatLab默认是:'123'),
%先转换为数字类型 123 ,然后将该数字赋值给变量 Num
4.将程序中的计算结果(变量值)显示到可编辑文本控件或者静态文本控件
先看代码
set(handles.text1,'String',test);
解释:
1.假如 test = 123
2.将test的值显示在 Tag 为 1 的静态文本 text1 中
## 5.数字 1 怎么显示成 001 ?
解决方案:
num2str(1, '%05d') %完美解决 05可以根据需求更改
未完待续…
觉得有用,留下你的赞~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!