Matlab的GUI编程之一

发布于:2025-06-15 ⋅ 阅读:(21) ⋅ 点赞:(0)

1、编程需求

listbox中选中项的回调函数

点和直线扫描闪烁,周期可控

清空图形中的部分内容

自适应调整图形范围

右键菜单

表格操作

1.1 listbox中选中项的回调函数

在listbox中右键,选择Callback回调函数;在回调函数中编辑操作。

1.2 listbox中右键按下回调函数

在listbox中右键,选择ButtonDownFcn回调函数;

会自动生成回调函数,在函数下编辑操作。

在listbox中按下右键,就会运行回调函数

1.3 航迹扫描闪烁,周期可控(动态图)

用for循环,中间pause(0.1)暂停

% 动态更新
for k = 1:100
    y1 = sin(t + k * 0.1); % 更新波形
    set(h1, 'YData', y1);
    pause(0.1);
end

1.4 清空图形中的部分内容(删子集)

使用delete函数删除元素。。。。把每个plot编成一个数组,然后删除整个数组。

set(h, 'Visible', 'off'); % 隐藏直线

 - `hold off`是绘图命令的一个状态设置,用于指示MATLAB在执行新的绘图命令时替换当前图形窗口中的内容。

   - 当`hold off`生效时,任何新的绘图命令都会导致当前图形窗口被清空,并绘制新的图形。

   - `hold off`是默认状态,即在未使用`hold on`之前,MATLAB默认处于`hold off`状态。

clf 删除当前图窗中具有可见句柄的所有子级。

clf(fig) 删除指定图窗中具有可见句柄的所有子级。

clc;clear;close all

figure(1)
i=1:100;
p=plot(i,i.*i,'ro');
hold on
q=plot(i,-i.*i,'bo');
r=plot(i,i.*i/2,'go');

delete(p); % 删除plot

set(h, 'Visible', 'off'); % 隐藏直线

for i=1:100
   p(i)=plot(i,i*i,'ro');
   hold on
   q(i)=plot(i,-i*i,'bo');
   r(i)=plot(i,i*i/2,'go');   
end

delete(r)
set(p, 'Visible', 'off'); % 隐藏直线
set(p, 'Visible', 'on'); % 隐藏直线

1.5 右键菜单

先在菜单编辑器中统一编写右键菜单。

然后给控件绑定菜单。将对应控件的“ContextMenu"设置为上面编辑的菜单

1.6 表格操作

新增表格控件,保存页面。

在m函数中编写代码加载表格数据

1.6.1 修改表头

set(handles.uitable1,'RowName',{'打发打发','测定','而非地方'});
set(handles.uitable1,'ColumnName',{'标题1','标题2','标题3'});

1.6.2 修改单元格数据

先读取表格所有数据,再修改对应单元格数据,最后重新设置表格数据。

1.6.3 设置表格属性

1.6.4 选中一行

使用回调函数,点击一个单元格,在回调函数中,将该行的背景色设置为浅蓝色。

1.6.5 获取选中的单元格位置

使用cellselectioncallback回调函数,选中的单元格在eventdata.Indices中。

如下图所示,选中的所有单元格位置,都会在Indices中。


网站公告

今日签到

点亮在社区的每一天
去签到