matlab gui 是干啥的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab gui 是干啥的?相关的知识,希望对你有一定的参考价值。

matlab gui 用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中。

为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。


扩展资料

优势特点:

1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2、具有完备的图形处理功能,实现计算结果和编程的可视化;

3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

参考技术A G=graphic图形 U=user用户 I=interface界面
打个比方,GUI就是windows,没有GUI就是DOS。
GUI是挺Fashion的,我个人认为在教学、演讲、演示的时候可以使用GUI。
如果是程序是编给自己用的话,没必要加入GUI,因为编写GUI挺耗费精力和事件的,有这个时间,还不如去进一步完善程序本身。等最后“小有成果”了,需要展示了,再去编个GUI还不迟。
matlab帮助的demo里面有一些GUI的例子,初学的话,看看知道有回事就行了。毕竟GUI不是Matlab的精髓。
参考技术B matlab gui可以编写命令,形成图形化的窗口,做出类似于C++中MFC的样子,但是他的主要内容还是在包含在其中的M文件中,简单说:就是使用起来简单,看起来舒服~ 参考技术C 可视化编程模块。

MATLAB 文件夹前面的+和@是干啥的 命名空间与函数的重载

前言

当你打开MATLAB的toolbox文件夹时(工具箱存储路径),会发现里面文件夹名称前会有一些奇奇怪怪的符号:

???这里面的+@是干啥的???

为了探究这个问题,我们建立了一个具有如下目录的文件夹:

当前文件夹──@cell──dispTest.m
        |
        ├──@double──dispTest.m
        |
        ├──+test1──+test2──test.m
        |       |
        |       └──test.m
        |
        └──untitled.m      

命名空间:路径函数(目录结构体)

如果想要代码整洁条理,很多情况会把一些同一类的工具函数放在一个单独的文件夹里,即你要调用的函数在当前文件夹内的一个文件夹中,想在当前文件夹直接调用这个函数是做不到的,要咋办?

很多人会选择直接addpath,但这样的话那些工具函数就不止该项目可以调用,其他位置的其他项目也能调用,这样有可能导致命名冲突。

那么一个很简单的方法就是将装工具函数的文件夹命名为+fordername的形式,就是前面有个+的形式,实际上就是文件夹路径作为命名空间。

对于我们前面提出的目录的以下部分:

当前文件夹──+test1──+test2──test.m
        |       |
        |       └──test.m
        |
        └──untitled.m   

我想要在untitled.m中调用+test1文件夹中的test.m,就可以直接通过以下代码调用:

test1.test()

当然像目录所示,+test1文件夹里还有个带加号的+test2文件夹,我们想要调用那个文件夹里的
test.m,就可以通过如下方式:

test1.test2.test()

这种调用格式非常像是在调用结构体里的函数,这也是我将其称为目录结构体的原因。

函数的重载

当然接下来就要讲目录的这部分是啥:

当前文件夹──@cell──dispTest.m
        |
        ├──@double──dispTest.m
        |
        └──untitled.m      

很像是C++中的函数的重载哈,两个@classname的文件夹中右两个名字完全相同的函数。

注意这里说的是@加上类名称的格式,可以是MATLAB自带的类,也可以是自己定义的类函数,我们这里就设置了元胞类和双精度类命名的文件夹。

这么设置有啥用呢?这样设置后,比如我再调用dispTest.m函数的时候,如果输入变量是元胞数组,那么就会调用@cell文件夹里的该函数,如果输入变量是双精度类型,那么就会调用@double文件夹里的函数。

也就是说以下的两种写法,用的是不同函数:

dispTest(1)

dispTest(1)

结语

大概就是这个样子,对于+可以想做结构体,对于@可以想做重载,本人不同文件夹里的函数定义是这样的:

+test1\\test.m

function test
disp('欢迎关注slandarer forder1')
end 

+test1+test2\\test.m

function test
disp('欢迎关注slandarer forder2')
end 

@cell\\dispTest.m

function dispTest(coe)
disp('is cell') 
end  

@double\\dispTest.m

function dispTest(coe)
disp('is double') 
end  

因此在untitled.m中运行如下代码,效果如下:

test1.test()

test1.test2.test()

dispTest(1)

dispTest(1)

欢迎关注slandarer forder1
欢迎关注slandarer forder2
is double
is cell

以上是关于matlab gui 是干啥的?的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB 文件夹前面的+和@是干啥的 命名空间与函数的重载

MATLAB 文件夹前面的+和@是干啥的 命名空间与函数的重载

有没有人知道下面的这段matlab程序是干啥的?

matlab中的script file是干啥用的?

matlab 中p=p'是干啥用的

在matlab里 sparse这个函数是干啥啊?