matlab开发的gui能独立运行吗

2025年02月23日 阅读 (46)

MATLAB是一款功能强大的软件,我们不仅可以通过编写代码来实现各种功能,还可以使用它的GUI界面,让我们编写的程序,通过图形直观地输出。接下来我就通过一个简单例子大概介绍介绍一下GUI界面的编写的过程,并进行封装生成exe文件,即使不打开Matlab也可以独立运行,真正打造属于你自己的App

首先,我们来新建一个GUI界面,我们可以通过再命令行窗口输入guide,来打开新建GUI界面或者通过依此点击新建AppGUIDE 来打开新建GUI界面的窗口,具体如下图所显示

matlab开发的gui能独立运行吗(1)

已保存

matlab开发的gui能独立运行吗(2)

新建一个空的GUI后,会弹出一个窗口,如下图所示

matlab开发的gui能独立运行吗(3)

可以看可以看到界面的左边有很多的小图标,这些就是GUI中的控件也是我们要进行操作的对象。不同的控件具有不同的功能,有只用来显示文字的文本框、可编辑的文本框、按钮等等。我就不做一一介绍,在这里只介绍几个简单常用的控件,如下图所示。

matlab开发的gui能独立运行吗(4)

图中列举了几个简单常用的控件,我们从上到下依次介绍

  1. 按钮:顾名思义就像生活中的按钮一样,可以按下并实现某些功能,我们在GUI中的很多操作可以通过点击按钮来完成。
  2. 可编辑文本:字面上就能看出来,在这个文本框内,里面的内容我们是可以编辑的。
  3. 静态文本:不可编辑的文本,通常用来对某些控件进行说明。
  4. 弹出式菜单:对它进行操作的时候会弹出我们事先设定的选项供我们选择。
  5. 坐标轴:这个大家可以理解成一个用来显示图片,进行绘画的界面部分就行。

接下来就是在GUI中如何来操作这些控件,在此之前,我们需要先来了解,我们能操纵控件的什么(也就是控件的属性)。控件都有哪些属性呢,我们以可编辑文本为例做说明,当我们新建一个可编辑文本后,双击这个控件,就会弹出下图所示的界面

matlab开发的gui能独立运行吗(5)

界面左侧就是可编辑文本框各个属性的名称如字体大小、字体颜色、‘String’等等,右边对应了属性的值或者内容,我们可以在这里进行直接编辑或者像通过代码进行编辑。同样的我们也可以通过代码来获取控件各个属性,正是基于这个我们才能通过GUI来实现各个控件的联动,从而实现我们想要达到的效果。在属性界面,尤其要注意的就是图上中红色框框标出的部分,见下图。

matlab开发的gui能独立运行吗(6)

String的内容表示了控件显示出来的文本,Style则是控件的类型,Tag表示了控件的名称。在编写代码的时候我们通常会使用set这个语句来设置某个控件的属性或者使用get来获得某个控件的属性。下面我们以一个简单的例子来演示GUI界面的编写过程。

现如今房价越来越贵,大家买房子的时候很少有人会取全款买房,贷款买房是大多数人的选择。可是贷款的时候不同的利率,不同的还款方式,贷款的金额,年限等等都会影响我们最后的还款金额。那么我们在这里就用Matlab的GUI界面来做一个贷款App吧。考虑到贷款要考虑的因素,我们可以设计如下的GUI界面

matlab开发的gui能独立运行吗(7)

红色框框用到了静态文本用来表明左侧的文本对应的内容是什么,绿色框框用到了可编辑文本,在运行GUI界面的时候我们可以改动里面的内容。蓝色的是

弹出式菜单,对应的里面设置的是还款方式(等额本金和等额本息),我们在其String属性里面设置

如下图:

matlab开发的gui能独立运行吗(8)
matlab开发的gui能独立运行吗(9)

点开之后就会出现一个代码框如下图

matlab开发的gui能独立运行吗(10)

图中function pushbutton3_Callback(~,~handles)就是‘计算’按钮的的回调函数,由于我这之前没有更改计算按钮的Tag属性(也就是控件的ID),所以这里现实的是pushbutton3,当我们改表属性Tag为pushbutton_jisuan,然后显示就变成了下图所示

matlab开发的gui能独立运行吗(11)

然后我们就可以在里面输入代码来实现我们想要的功能。在我们这个例子中,整个GUI只需要在这里编写代码,具体代码如下:

huankuan=get(handles.popupmenu_huankuan,'Value');%通过读取控件Value来获取贷款方式

r=str2double(get(handles.edit_lilv,'string'))*...%换行

(1+str2double(get(handles.edit_fudong,'string'))/100)/1200;%获取并计算月利率

yihang=get(handles.edit_yinhang,'String');%获取贷款银行

H=str2double(get(handles.edit_daikuannian,'string'))*12;%获取贷款期数

P=str2double(get(handles.edit_jine,'string'));

axes(handles.axes1);

switch huankuan

case 1 % 等额本金

for M=1:H

A(M)=P*10000/H+(1-(M-1)/H)*P*r*10000;%等额本金计算公式

end

plot([1:H],A)

% ylim-500 max+500]);

xlim;

title(yihang);

ylabel('每月还款金额(元)');

xlabel('还款月份');

case 2 % 等额本息

for M=1:H

A(M)=P*10000*r*((1+r)^H/((1+r)^H-1));

end

plot([1:H],A)

xlim;

title(yihang)

ylabel('每月还款金额(元)');

xlabel('还款月份');

end

L=(sum(A)-P*10000)/10000;%计算总利息

set(handles.text_lixi,'String',num2str(L));%在文本框lixi中显示总利息

对于新手来说一定要注意handles.xxx,这里的xxx对应的是每个控件的Tag。还有就是要注意数据的属性,要显示出来的都是字符型,我们直接从控件读取的都是字符型,需要使用str2double或者str2num函数转换成可以计算的数字型。同样的,当我们通过代码设置控件的‘String’属性的时候需要将计算的数字用num2str转换成字符型才能使用。

都弄好之后我们点击保存,命名为daikuan。然后我们就能看到有两个文件保存了下来,如下图

matlab开发的gui能独立运行吗(12)

分别是m文件和fig文件,对应的是代码文件和图形界面文件,两个文件之间是相互联动的,想要运行我们刚刚编写好的GUI,这两个文件去缺一不可。

当这两个文件在Matlab的工作路径下的时候我们可以双击fig文件打开GUI或者双击m文件,然后点击编辑器里面的‘运行’按钮打开GUI。打开后的界面如下图所示

matlab开发的gui能独立运行吗(13)

假如我们选择工商银行贷款,贷款金额为100万元,贷款期限为30年,年利率是4.9%,利率上浮20%。那么选用等额本金和等额本息的计算出来的还款图就如下图所示

matlab开发的gui能独立运行吗(14)

我们可以在命令行窗口输入deploytool这个代码或者通过MatlabAppApplication Compiler,来打开Application Compiler。打开后如下图所示

matlab开发的gui能独立运行吗(15)

在选好daikuai.m文件后,我们还可以自己设置App图标以及各种软件信息,如下图

matlab开发的gui能独立运行吗(16)

输出有两种,一种文件较小,运行的时候需要额外安装一些软件(如果已经装了Matlab则不需要),另一种文件很大是可以完全独立运行的(不需要安装Matlab)。这里我们选择最小的那个,然后点击Package进行封装生成EXE文件。然后找到生成文件路径,双击打开新生成for_test文件夹下的daikuan,同样也能够开始贷款计算啦,此时你不需要运行Matlab!

郑重声明:玄微运势的内容来自于对中国传统文化的解读,对于未来的预测仅供参考。