当前位置: 首页 > news >正文

Matlab APP Designer

我想给聚类的代码加一个图形化界面,需要输入一些数据和一些参数并输出聚类后的图像和一些评价指标的值。

gpt说 可以用 app designer

界面元素设计

在 设计视图 中直接拖动即可

如图1,我拖进去一个 按钮 ,图2 红色部分 出现一行 Button

图1
图2

怎么传参 是个问题

首先要把 现有的代码 封装成一个函数 方便传入参数和返回参数

然后放一个 按钮 点击按钮时 调用函数

1 输入

可以 根据需要 拖  编辑字段(数值)或 编辑字段(文本)

如果需要输入 文件  或 文件路径 可以 加一个按钮 并为按钮设置 回调函数,如下:

[fileName, path] = uigetfile('*.mat', 'Select Data File');
if fileName ~= 0app.DatabaseFile.Value = fullfile(path, fileName);
end

 app.DatabaseFile 是 接收文件或文件路径 的 编辑字段(文本)

!另:对于 编辑字段(数值)如果要求是整数可以包一个 round()四舍五入,增强鲁棒性,没有要求就不用加了,eg:

% 获取用户输入的参数
databaseFile = app.DatabaseFile.Value;
m = round(app.ResamplePoints.Value);
% .Value就是对应组件的值
2 输出

对于聚类结果,输出有两种:

1)聚类后的可视化图像

2)聚类结果的评价指标

想把代码里的结果传回GUI 可以在聚类函数的参数的最后 加一个 app,eg:

trackAnalysis(databaseFile, m, a, imgFolder, centerSize, numComponent, epsilon, minPts, app);

 

比如想返回评价指标,可以拖一个 编辑字段(数值),在聚类函数中加一行

app.DBI.Value = dbi_eval.CriterionValues;
% 把dbi_eval.CriterionValues赋给app.DBI.Value

这样,GUI中的DBI组件就是显示对应的值

对于聚类后的图像  说是图像,其实就是在坐标区域做的图

比如我想放一个2D聚类结果,可以拖一个 坐标区 命名为 fig2D

然后在聚类代码中

% 用
hold(app.fig2D, 'on'); % 在同一个图中叠加绘制
% 代替
figure;
hold on; % Hold the plot to overlay all clusters% 加app.fig2D
plot3(app.fig2D, trajectory(:, 1), trajectory(:, 2), trajectory(:, 3), 'Color', colors(i, :));% 设置坐标区属性
title(app.fig2D, '2D');
xlabel(app.fig2D, 'X/m');
ylabel(app.fig2D, 'Y/m');
zlabel(app.fig2D, 'Z/m');
hold(app.fig2D, 'off'); % 释放当前图形对象
grid(app.fig2D, 'off');

最后的最后

在代码结尾处 end 前  加

% 返回图像和指标值
return

运行,输入参数,就成功喽

不成功也别灰心,控制变量看看是哪有问题

加油

http://www.lryc.cn/news/518193.html

相关文章:

  • CSS语言的编程范式
  • 一个简单的php博客
  • 解决anaconda prompt找不到的情况
  • 【深度学习】多目标融合算法(二):底部共享多任务模型(Shared-Bottom Multi-task Model)
  • 如何使用vue引入three.js
  • 城市生命线安全综合监管平台
  • 计算机毕设【开题报告】怎么写?
  • Go学习:多重赋值与匿名变量
  • 【Ubuntu 上搭建 Nginx-RTMP 服务】
  • 使用uniapp 微信小程序一些好用的插件分享
  • linux centos挂载未分配的磁盘空间
  • C语言凯撒密码程序分享
  • 2025新年源码免费送
  • 阿里云ethereum
  • 子父组件传值
  • QT自定义工具条渐变背景颜色一例
  • 2025最新Facebook广告投放常见问题:如何提高广告效果?
  • 双向导航和单向导航
  • Unity3d 基于Barracuda推理库和YOLO算法实现对象检测功能
  • Lambda离线实时分治架构深度解析与实战
  • Spring Boot教程之五十一:Spring Boot – CrudRepository 示例
  • jenkins入门6 --拉取代码
  • CAPL概述与环境搭建
  • Virgo:增强慢思考推理能力的多模态大语言模型
  • 偃动访无穿戴动作捕捉系统:赋能多行业开启动作捕捉新篇章
  • mikro-orm 和typeorm 对比
  • Docker入门之docker基本命令
  • mysql的一些函数及其用法
  • NO.3 《机器学习期末复习篇》以题(问答题)促习(人学习),满满干huo,大胆学大胆补!
  • 黑马跟学.苍穹外卖.Day03