GUI 一次记录
记录:以下是一次GUI界面设计时候学到的知识,直接附上了原文链接,如侵可删除
matlab GUI界面的调成全屏:
1、在figure(白色画面)把RESIZE的OFF变成ON
2、把figure以及内部的控件的units属性都统一设置为normalized就可以,原来的character表示像素的意思。
3、如果想要窗口一弹出就全屏显示,可以在outputfcn函数的最后添加如下语句:
javaFrame = get(gcf,‘javaFrame’);
set(javaFrame,‘Maximized’,1);
原文
去除坐标轴和其刻度
双击axes1控件,打开其属性设置面板。下拉找到“XTickLabel”和“YTickLabel”,将其中是刻度值全部清除(点击图中黄色田字格下面的按钮即可进入,全选,清除)。再找到其中的“XColor”和“YColor”,将坐标轴改成白色。
回调函数改名字
Matlab回调函数自动命名回调函数的函数名是GUI对其自动命名,当设计时在界面中添加一个控件时,就根据该控件的“tag”属性确定了回调函数的名称。
按钮回调函数按下改名字
方法一:
%开始按钮的回调函数---对应于开始第一组 和开始第二组 开始后播放视频
function start_Callback(hObject, eventdata, handles)
% hObject handle to start (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
st = get(handles.start,'string');%获取按钮控件字符名
if strcmp(st, '开始第一组')
set(handles.start,'string','开始第二组');
uiresume;%回复暂停
elseif strcmp(st,'开始第二组')
set(handles.start,'string','开始第一组');
% handles.start.String = '开始第一组';
uiwait;%用于暂停
end
方法二:
switch handles.ConnectButton.String
case 'Connect'
printCmd(handles, 'Device is Connected.');
handles.ConnectButton.String = 'Disconnect';
case 'Disconnect'
printCmd(handles, 'Device is Disconnected.');
handles.ConnectButton.String = 'Connect';
end
guidata(hObject, handles);
视频播放功能
a=VideoReader('视频.mp4');
while hasFrame(a)
vidFrame = readFrame(a);
axes(handles.axes1);
imshow(vidFrame)
播放一个视频后清除axis
axes(handles.axes1); %指定需要清空的坐标轴
cla reset;
set(handles.axes1,'xtick',[]);
set(handles.axes1,'ytick',[]);
在坐标轴上画点
显示和隐藏按钮
%显示按钮
set(handles.start,'Visible','on')
set(handles.finish,'Visible','on')
%隐藏按钮
set(handles.start,'Visible','off')
set(handles.finish,'Visible','off')
MATLAB连续读取多个文件
方法一:
把文件的文件名按一定的规律命名,假如:filename1.txt,filename2.txt,…,fielname100.txt,在读取的时候则可以使用循环:
for i = 1:100
fileName = ['filename' num2str(i) '.txt'];
x = load(filiName);
end
方法二:
无需对数据文件的文件名进行修改,就是文件名无须有规律:
A = dir(fullfile('d:/datafile','*.txt'));
这个语句是把存放数据文件的目录d:/datafile下的所有txt文件列出来,并把这些文件名的信息存放到一个变量A中,A是一个结构体变量,只要对A进行循环就可以读取到所有文件的数据了。
清除图片和动态txt文字
% 重置清空图片
cla(handles.axes1,'reset');
% 重置清空动态txt的文字
set(handles.edit1,'string','')`
GUI 中Plot无法hold on的解决办法
hold(handles.axes,’on’)
matlab定时器的使用
常用的方式:
%定时器的定义
global cartoon1
% ('Period',1)意思是任务执行的周期为1秒;('TasksToExecute',5)的意思是任务执行5次后自动停止; ('ExecutionMode','fixedDelay')的意思是上一次TimerFcn执行完毕时刻到下一次TimerFcn被加入队列时刻之间的间隔;
cartoon1=timer('Period',0.2,'ExecutionMode','singleShot');%singleShot--执行一次后自动停止
cartoon1.TimerFcn={@cartoon1_callback_fcn,handles};%注意这里的参数!需要输入一些参数的
%回调函数
回调函数语法 如何指定为对象 t 的属性值
function myfile(obj, event) t.StartFcn = @myfile
function myfile t.StartFcn = @(~,~)myfile
function myfile(obj, event, arg1, arg2) t.StartFcn = {@myfile, 5, 6}%前面两个是固定的,后面是可选参数,用来传递信息