精华内容
下载资源
问答
  • matlab如何修改GUI的图标 左上角的logo

    千次阅读 2019-03-30 10:33:48
    在使用matlab画图或者制作GUI的时候,我们常常需要定制自己专属的图标,或者用图标表示其作用,但是默认的GUI图标都是matlab的标志,如图:

    在使用matlab画图或者制作GUI的时候,我们常常需要定制自己专属的图标,或者用图标表示其作用,但是默认的GUI图标都是matlab的标志,如图:

    如果我们需要更改成下面的这个图标应该怎么做?

    这个同样是matlab制作的窗口,但是图标和主菜单以及名称都被改变了。
    因为matlab的图形用户界面是用java写的,所需的代码如下:

     newIcon=javax.swing.ImageIcon('logo.jpg'); %logo.jpg是自己的图标
     figFrame=get(GUI.open,'JavaFrame'); %GUI.open是想改变的GUI名称
     figFrame.setFigureIcon(newIcon); 
    

    或者

    Frame=get(GUI.open,'JavaFrame'); %GUI.open是想改变的GUI名称
    set(Frame,'FigureIcon',javax.swing.ImageIcon('logo.jpg')) %logo.jpg是自己的图标
    
    展开全文
  • MATLAB的所有界面是用JAVA实现的,理论上来说,界面上的所有东西都是可以通过JAVA来修改的!!虽然JavaFrame被封掉了,但肯定还有其他方法来改Figure的图标。经过一番研究,终于找到了这样一种方法。全部代码如下: ...

    我也在看这个问题,这个帖子不错,可以看看,可以我不能复制网址。

    Figure的JavaFrame属性实现的。遗憾的是,从R2009a开始,使用这个函数时开始出现如下警告:

    Warning: figure JavaFrame property will be obsoleted in a future release. For more information see the JavaFrame resource on the MathWorks Web site.

    也就是说,在以后的版本中Figure的JavaFrame属性就没法用了。以前写的那个changeicon函数也会随之失灵了。

    修改Figure图标的方法不止一种,simwe论坛里就可以找到几个方案。但JAVA方法相对来说简单一些,可以写成MATLAB中的函数来方便的调用,所以本人还是更喜欢这种方法。MATLAB的所有界面是用JAVA实现的,理论上来说,界面上的所有东西都是可以通过JAVA来修改的!!虽然JavaFrame被封掉了,但肯定还有其他方法来改Figure的图标。经过一番研究,终于找到了这样一种方法。全部代码如下:

    function chgicon(hfig,iconfile)

    %CHGICON changes the Figure HFIG's icon to the icon specified by ICONFILE

    % HFIG must be a figure handle.

    % ICONFILE is a string specifies the path to an imagefile.

    %

    %WARNING:

    % Changing the MATLAB icon violates Mathworks license agreement. THis function can

    % only be used for study purpose. Please delete it within 24 hours.

    %

    % Author: junziyang (simwer@126.com)

    % Ver.1.0

    % 2009-05-20

    error(nargchk(2,2,nargin));

    if ~ishandle(hfig) && ~isequal(get(hfig,'Type'),'figure')

    error('The first input argument must be a Figure handle.');

    end

    if ~ischar(iconfile) || ~exist(iconfile,'file')

    error('Icon file name is not input properly.');

    end

    mde = com.mathworks.mde.desk.MLDesktop.getInstance;

    if isequal(get(hfig,'NumberTitle'),'off') && isempty(get(hfig,'Name'))

    figTag = 'junziyang'; %Name the figure temporarily

    set(hfig,'Name',figTag);

    elseif isequal(get(hfig,'NumberTitle'),'on') && isempty(get(hfig,'Name'))

    figTag = ['Figure ',num2str(hfig)];

    elseif isequal(get(hfig,'NumberTitle'),'off') && ~isempty(get(hfig,'Name'))

    figTag = get(hfig,'Name');

    else

    figTag = ['Figure ',num2str(hfig),': ',get(hfig,'Name')];

    end

    drawnow %Update figure window

    jfig = mde.getClient(figTag); %Get the underlying JAVA object of the figure.

    jfig.setClientIcon(javax.swing.ImageIcon(iconfile));

    if isequal(get(hfig,'Name'),'junziyang')

    set(hfig,'Name',''); �lete the temporary figure name

    end

    展开全文
  • 使用GUIDE做GUI的最大也是唯一的优点便是直观、低门槛,代价却是沉重的——对于一个大型的界面系统,后期如要修改,将会是天大的工作量。GUIDE的门槛确实很低,上手很快,但是同样,它的上限也很低。对于一个有点...

    旗帜鲜明地反对从GUIDE入门Matlab GUI。

    使用GUIDE做GUI的最大也是唯一的优点便是直观、低门槛,代价却是沉重的——对于一个大型的界面系统,后期如要修改,将会是天大的工作量。

    GUIDE的门槛确实很低,上手很快,但是同样,它的上限也很低。对于一个有点基础和追求的同学,我都不建议学习GUIDE制作Matlab GUI。好的习惯要从一开始培养,不要给自己设限。

    在这篇回答里,我将以一个例子分享我做GUI的一个套路。文末更新了界面代码文件,有爱自取。

    先上几个作品:大家都用matlab做过哪些有趣的事儿?​www.zhihu.com

    在一个界面系统下,每一个.m脚本文件对应一个界面。我们以上图中极简风格的【线性拟合】的代码讲解基本构成:

    【0】初始化

    clc;close all;clear all;

    【2】创建界面

    global hF_start

    hF_start=figure('menubar','none','Resize','off','NumberTitle','off','position',...

    [100,200,1200,700],'name','线性拟合','Visible','on');

    【3】声明全局变量

    这个等到最后确定需要传递的变量后再统一声明

    global xx

    【4】控件参数设置

    在这一环节,主要将要设置的控件按照区域划分成不同的数组,之所以按照区域划分,主要标准是在设置位置的时候有规律可循(比如x/y相同),有规律,就可以用循环。

    ui_text_1 ={'温度(℃)','压强(atm)','线吸收强度'};

    unit ='*1e-24cm/molecule';

    edit_text1 ={'30','0.0845526','8.273'};

    ui_text_20 ={'初始值','计算值'};

    ui_text_2 ={'q','z','碰撞偏移 d','碰撞展宽 g','FD多普勒','α','ξ','β','b af(x)+b','a af(x)+b'};

    edit_text_2_1={'6','0.01','0','0','0.5','2','0','0','0','1'};

    edit_text_2_2={'','','','','','','','','',''};

    ui_text_3 ={'气体分压','气体浓度','计算耗时'};

    unit_text_3 ={'atm','ppm','s'};

    Text_CallBack={'原始数据','计算','结果导出','清除'};

    Fun_CallBack ={'Input0','calculate','Output0','Clearaxes'};

    我在这里只设置了文本,如果在草稿上确定布局,还可以把坐标设置好。

    【5】控件设置

    然后就开始循环设置控件了。以下是我对ui_text2的控件设置:

    for i=1:length(ui_text_2)

    if i>0 && i<=4

    ui_2(i)=uicontrol(gcf,'style','push','string','振动点','ForegroundColor',bb,'value',0,'fontsize',15,'position',[230+l 240+(i-1)*60+d 80 30],'visible','on');

    edit21(i)=uicontrol(gcf,'style','edit','fontname','Times New Roman','BackgroundColor',aa,'string','100','value',0,'ForegroundColor',bb,'fontsize',12,'position',[310+l 240+(i-1)*60+d 50 30],'visible','on');

    edit22(i)=uicontrol(gcf,'style','edit','fontname','Times New Roman','BackgroundColor',aa,'string','100','value',0,'ForegroundColor',bb,'fontsize',12,'position',[310+50+l 240+(i-1)*60+d 50 30],'visible','on');

    elseif i>4 && i<=8

    ui_2(i)=uicontrol(gcf,'style','push','string','振动点','ForegroundColor',bb,'value',0,'fontsize',15,'position',[430+l 240+(i-1-4)*60+d 80 30],'visible','on');

    edit21(i)=uicontrol(gcf,'style','edit','fontname','Times New Roman','BackgroundColor',aa,'string','100','value',0,'ForegroundColor',bb,'fontsize',12,'position',[510+l 240+(i-1-4)*60+d 50 30],'visible','on');

    edit22(i)=uicontrol(gcf,'style','edit','fontname','Times New Roman','BackgroundColor',aa,'string','100','value',0,'ForegroundColor',bb,'fontsize',12,'position',[510+50+l 240+(i-1-4)*60+d 50 30],'visible','on');

    else

    ui_2(i)=uicontrol(gcf,'style','push','string','振动点','ForegroundColor',bb,'value',0,'fontsize',15,'position',[630+l 240+(i-1-8)*60+d 80 30],'visible','on');

    edit21(i)=uicontrol(gcf,'style','edit','fontname','Times New Roman','BackgroundColor',aa,'string','100','value',0,'ForegroundColor',bb,'fontsize',12,'position',[710+l 240+(i-1-8)*60+d 50 30],'visible','on');

    edit22(i)=uicontrol(gcf,'style','edit','fontname','Times New Roman','BackgroundColor',aa,'string','100','value',0,'ForegroundColor',bb,'fontsize',12,'position',[710+50+l 240+(i-1-8)*60+d 50 30],'visible','on');

    end

    set(ui_2(i),'string',ui_text_2{i})

    set(ui_2(i),'style','text');

    set(ui_2(i),'BackgroundColor',Bcolor);

    %set(edit21(i),'fontsize',15)

    set(edit21(i),'string',edit_text_2_1{i});

    set(edit22(i),'string',edit_text_2_2{i});

    end

    以上就是一个界面的基本设置,而对于回调函数,细心的同学应该看到了,我在【4】中设置了两行Text_CallBack和Fun_CallBack,对应的就是功能键的名字和相应回调函数的名字。然后回调函数,直接就在Input0.m,calculate.m里面写。这就是大家很熟悉的基本的Matlab功能编写了。

    最后,提醒一下:除了主界面,其他所有脚本(包括子界面和功能函数),都不要在开头初始化。

    我曾不止一次地跟我的同学朋友强调过这样一个观点:网上的信息鱼龙混杂,要学会分辨。很多教程只是一些新手刚刚学会便迫不及待想要分享喜悦而带来的不成熟的经验,或许并没有错,但是会走很多弯路,也会限制你的视野。

    我想,当你熟练掌握GUIDE的时候,大抵也没有动力去学习用脚本写GUI了。这不能不说是一种遗憾吧。

    我在15年由于参加的项目的需要开始学习GUI,我很庆幸我的GUI入门是一本叫做《Matlab GUI学习手记》的相对专业的书籍,作者以高屋建瓴的方式带我一睹了Matlab GUI的大概,这让我一开始就接触了用脚本控制界面的方法,从而少走了很多弯路。

    我觉得Matlab GUI,这一本书就足够了。

    Main.m

    8.2K ·

    百度网盘

    展开全文
  • 最近需要做一个项目的小软件,学习如何matlab GUI生成一个小软件,带对话框等等。所以这几天对matlab GUI的分步学习进行记录。我的matlab版本是R2017a。 首先是如何matlab中生成一个GUI文件。 (1)在命令行...

    最近需要做一个项目的小软件,学习如何用matlab GUI生成一个小软件,带对话框等等。所以这几天对matlab GUI的分步学习进行记录。我的matlab版本是R2017a。

    首先是如何在matlab中生成一个GUI文件。

    (1)在命令行窗口输入“guide”命令并执行;

    (2)弹出一个对话框,选择第一个“Blank GUI(Default)”,点击“确定”;

    (3)之后就生成了一个空白的界面,需要将左侧的配件添加到界面中;

    (4)例如,添加一个按钮,选中图标点击右键,选择“属性检查器”,可以对字体的大小和文字内容,包括按钮底色等进行一系列的设置

    **特别主要注意的是,需要我们记住Tag中的标记“pushbutton1”,之后在.m文件中对该图标进行编程时对应的标签。

    (5) 如果想更改整个底板的底色等属性,可直接在菜单栏中选择“视图”的“属性检查器”进行更改。

    (6)将所有图标设置完成后,点击保存即可,注意文件名开头字母为英文字母,且命名需为英文名称。

    保存后生成一个.m文件,对每个按钮进行编程;且生成一个.fig文件,即之前设置的界面。

    (7)保存后的.fig文件没有修改的选项,如果我们想修改图形界面要怎么办呢?

    重复第一步的操作,在命令窗口中输入guide,然后选择existing fig就可以了。

    展开全文
  • 在使用浩辰CAD制图软件绘制图纸的过程中,经常会用到表格功能,表格数据和文字都是有专门设置位置,那么想要修改表格中文字颜色该怎么操作呢?接下来就给大家介绍一下修改表格中CAD字体颜色的操作步骤吧!修改表格中...
  • 常用的修改进度条的方法这里就不介绍了,太丑了。这里提供一种自主设计进度条的方法,上图抛砖引玉。使用控件为静态文本TXT(单行文本框),改变的属性是Position。具体做法如下:1.确定静态文本初始状态与结束状态...
  • matlab GUI编程入门

    万次阅读 多人点赞 2016-12-02 19:25:55
    这里我们来实现一个加法器,功能比较简单,主要用于了解matlab中的代码是如何与控件进行交互。2.绘制界面在命令行窗口中输入:>> guide 直接“确定”即可。 将需要的控件从左边托至中间的编辑窗口,如下图。 将...
  • 本次科协五分钟简要介绍MATLAB中App Designer的用法(MATLAB可视化界面的设计在大三某专业课的作业中是需要的哟~~本次科协五分钟通过以下四个方面进行介绍:1、AppDesigner简介2、【举例】如何用AppDesign...
  • 常用的修改进度条的方法这里就不介绍了,太丑了。这里提供一种自主设计进度条的方法,上图抛砖引玉。使用控件为静态文本TXT(单行文本框),改变的属性是Position。具体做法如下:1.确定静态文本初始状态与结束状态...
  • matlabGUI学习笔记3

    2019-07-27 14:29:05
    上两篇讲到uicontrol的属性及简单的回调,我发现传输数据的方式或者说属性的修改,设置,传递方法太单一,于是就想还有哪些传递的方法,在多对象间如何传递。 对象属性和原点表示法 这个方法就是上两篇用的dot。...
  • matlabGUI学习笔记9

    2019-08-05 16:48:15
    最基础的,如何创建一个坐标轴,它的默认格式是什么样的? 语法 axes %在当前图窗中创建默认的笛卡尔坐标区,并将其设置为当前坐标区。通常情况下,您不需要在绘图之前创建坐标区,因为如果不存在坐标区,图形函数...
  • 写了好久的本子,老师又给软件提了些要求,需要进行修改。 (1)更改窗口标题 为了方便窗口编程,每个窗口的名称都设置的很明了,例如下图这样,这个窗口对应的就是主窗口的pushbutton1,但作为软件成品来讲就很不...
  • GUI编写心得(MATLAB

    2020-06-25 23:43:40
    但是如何让自己的GUI代码更加易读懂,易修改,可维护性高,还是有一些小技巧的。 1.算法模块化 在开发GUI之前,首先需要在纯代码界面进行算法的仿真,然后才能移植到GUI中。在开发算法代码的过程中。把在GUI上需要...
  • 这种对话框非常具有实用价值,那么使用GUI编写软件时,该如何添加该功能呢?具体如下: 在fig界面空白的格子处点击鼠标右键,查看回调函数,选择CloseRequestFcn,进入.m文件 删除.m文件原有的delete(hObject); ...
  • 本章以SQL Server 2008数据库为例,讲解了MATLAB如何创建数据源、连接数据库,以及连接之后如何查询、处理、添加、更新、删除数据表中的数据。 第8章:定时器。本章首先介绍了GUI设计中定时器的使用方法,然后以专题...
  • 摘要:本文详细介绍如何利用MATLAB实现手写数字的识别,其中特征提取过程采用方向梯度直方图(HOG)特征,分类过程采用性能优异的支持向量机(SVM)算法,训练测试数据集为学术及工程上常用的MNIST手写数字数据集,...
  • matlab下simulink模型在代码中修改参数

    千次阅读 2019-04-10 23:48:07
    最近由于机器人学作业的缘故不得不使用matlab,仿真的时候使用了simulink模块,而作业要求中要求修改模型中的参数来查看参数对结果的影响,在百度中查询到的一些方式都是通过GUI调整的: 在simulink仿真中如何设定...
  • 周一到!从本周开始,我们一起来学习关于绘图的操作吧!之前学过了如何从文件中读取数据,有的小伙伴可能...图窗认识先从认识MATLAB基本的画图GUI界面开始吧!输入figure;就会生成一个最基本的图窗: MATLAB里,图窗...
  • 2.GUI转化为可执行程度:用matlab自带编译工具deploytool对程序进行编译 隐藏exe程序运行时的dos黑窗 用deploytool对编译程序进行打包 3.基于图像处理的运动目标检测及测速:道路背景重建 运动车辆检测 运动跟踪...
  • 2.GUI转化为可执行程度:用matlab自带编译工具deploytool对程序进行编译 隐藏exe程序运行时的dos黑窗 用deploytool对编译程序进行打包 3.基于图像处理的运动目标检测及测速:道路背景重建 运动车辆检测 运动跟踪...
  • 2.GUI转化为可执行程度:用matlab自带编译工具deploytool对程序进行编译 隐藏exe程序运行时的dos黑窗 用deploytool对编译程序进行打包 3.基于图像处理的运动目标检测及测速:道路背景重建 运动车辆检测 运动跟踪...
  • 因此,本文以MATLAB提供的图形用户界面(GUI)为平台对图像处理系统进行设计。依据软件开发的设计原则,确定了设计的一般步骤,具体如下: (1)明确系统所要实现的主要功能,应该具有哪些模块。 (2)绘出基本的...
  • 本书的基本目的是通过向读者展示如何有效地使用这些功能来帮助读者增强工作能力。由于MATLAB交互式的性质,书中内容以举例方式来描述。在读者阅读本书的同时, 这些例子可以通过运行MATLAB而再现。 前言 第1章 引言 ...
  • PlatEMO provides a powerful and friendly GUI, where users can configure all the settings and perform experiments in parallel via the GUI without writing any code. Generates Data in the Format of ...
  • 7.0版本在GUI方面与6.0版本已经有较大不同。我将会在以后想办法提供第十章。 3.附录B与前面的专有名词翻译可能会不一致。例如cell array一词,邢把它译为“单元阵列”,而我把它称为“胞数组”。我是一个初学者,...
  • 形状上下文-光学字符... 要使用GUI运行程序, OcrProgram在Matlab命令窗口中执行OcrProgram 。 要使用默认设置运行程序,请在Matlab命令窗口中执行ocr 。 要使用新数据训练程序,请在Matlab命令窗口中执行TemplateTr
  • 各位大神,我是新手,自学matlab,编写了一个计算个税缴纳的计算器GUI,来熟悉matlab的函数。 思路是输入应发工资、公积金抵税额、五险一金,输出交税额、实发工资。 其中,应发工资、公积金抵税额是edit直接输入...
  • 各位大神,我是新手,自学matlab,编写了一个计算个税缴纳的计算器GUI,来熟悉matlab的函数。 思路是输入应发工资、公积金抵税额、五险一金,输出交税额、实发工资。 其中,应发工资、公积金抵税额是edit直接输入...
  • ubuntu下使用libsvm

    2016-03-08 14:56:00
    matlab上的代码已经八八九九了,因为涉及到GUI和网络编程的东西,所以不得已开始学python并在python上做完整版。 下面是如何在linux和python下使用libsvm 在你的python代码前面加上如下代码,路径修改称自己的路径...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

matlab如何修改gui

matlab 订阅