Matlab APP Designer

打印 上一主题 下一主题

主题 981|帖子 981|积分 2943

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想给聚类的代码加一个图形化界面,必要输入一些数据和一些参数并输出聚类后的图像和一些评价指标的值。
gpt说 可以用 app designer
界面元素计划

在 计划视图 中直接拖动即可
如图1,我拖进去一个 按钮 ,图2 赤色部门 出现一行 Button
   
     图1      
     图2    怎么传参 是个标题

起首要把 现有的代码 封装成一个函数 方便传入参数和返回参数
然后放一个 按钮 点击按钮时 调用函数
1 输入

可以 根据必要 拖  编辑字段(数值)或 编辑字段(文本)
假如必要输入 文件  或 文件路径 可以 加一个按钮 并为按钮设置 回调函数,如下:


  1. [fileName, path] = uigetfile('*.mat', 'Select Data File');
  2. if fileName ~= 0
  3.     app.DatabaseFile.Value = fullfile(path, fileName);
  4. end
复制代码
 app.DatabaseFile 是 接收文件或文件路径 的 编辑字段(文本)
!另:对于 编辑字段(数值)假如要求是整数可以包一个 round()四舍五入,增强鲁棒性,没有要求就不用加了,eg:
  1. % 获取用户输入的参数
  2. databaseFile = app.DatabaseFile.Value;
  3. m = round(app.ResamplePoints.Value);
  4. % .Value就是对应组件的值
复制代码
2 输出

对于聚类效果,输出有两种:
1)聚类后的可视化图像
2)聚类效果的评价指标

想把代码里的效果传回GUI 可以在聚类函数的参数的最后 加一个 app,eg:
  1. trackAnalysis(databaseFile, m, a, imgFolder, centerSize, numComponent, epsilon, minPts, app);
复制代码
 
比如想返回评价指标,可以拖一个 编辑字段(数值),在聚类函数中加一行
  1. app.DBI.Value = dbi_eval.CriterionValues;
  2. % 把dbi_eval.CriterionValues赋给app.DBI.Value
复制代码
如许,GUI中的DBI组件就是显示对应的值

对于聚类后的图像  说是图像,其实就是在坐标区域做的图
比如我想放一个2D聚类效果,可以拖一个 坐标区 命名为 fig2D
然后在聚类代码中
  1. % 用
  2. hold(app.fig2D, 'on'); % 在同一个图中叠加绘制
  3. % 代替
  4. figure;
  5. hold on; % Hold the plot to overlay all clusters
  6. % 加app.fig2D
  7. plot3(app.fig2D, trajectory(:, 1), trajectory(:, 2), trajectory(:, 3), 'Color', colors(i, :));
  8. % 设置坐标区属性
  9. title(app.fig2D, '2D');
  10. xlabel(app.fig2D, 'X/m');
  11. ylabel(app.fig2D, 'Y/m');
  12. zlabel(app.fig2D, 'Z/m');
  13. hold(app.fig2D, 'off'); % 释放当前图形对象
  14. grid(app.fig2D, 'off');
复制代码

最后的最后
在代码末端处 end 前  加
  1. % 返回图像和指标值
  2. return
复制代码
运行,输入参数,就乐成喽
不乐成也别灰心,控制变量看看是哪有标题
加油

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表