
1.1.3 MATLAB的特点
(1)MATLAB兼顾高级语言与可视化应用。MATLAB可用于算法开发、数据分析、系统控制、测控测量等,既可以作为高级计算语言进行编程,以代码的形式实现,也可以在交互环境下,使用鼠标选择丰富的工具箱,所见即所得地实现每一步。和传统的编程语言相比,在交互环境下MATLAB为用户更快地解决问题提供了极大便利。
(2)MATLAB提供了丰富的工具箱。多年的发展使得MATLAB的工具箱日渐丰富,利用这些工具箱,可解决相应领域内特定类型的问题。这些工具箱包括:机器学习和深度学习、数学统计和优化、控制系统设计和分析、信号处理与通信、图像处理、测试测量、计算金融、计算生物等。图1-1是R2020a版的MATLAB提供的App工具箱的一部分。
(3)MATLAB助力科研计算快速实现。MATLAB进行数据处理的计算单位是矩阵,在其他语言中需要编程实现的矩阵计算,在MATLAB中只需一个运算符号即可。以遗传研究中的豌豆杂交为例,多次杂交之后的结果可通过马尔可夫模型计算得到。
在孟德尔的豌豆杂交实验中,豌豆种子的圆形与皱形是一对等位基因,圆形是显性基因,以A表示,皱形是隐性基因,以a表示。两种基因组成3种基因型,即纯显性AA、杂交Aa、纯隐性aa。这3种基因型是杂交后可能形成的3种状态,构成遗传杂交实验随机过程的状态空间U={AA,Aa,aa},如果以基因型Aa进行杂交,则在杂交实验中,按照基因型AA、Aa、aa分配的比例分别为x1、x2、x3。显然,x1、x2、x3具有随机性,且存在x1+x2+x3=1。它们构成向量X=(x1,x2,x3),经过杂交实验,一代的基因分配比例可列表计算得到:


图1-1 R2020a版的MATLAB提供的App工具箱的一部分
它实际上是由原分配比例向量与转移矩阵相乘而获得的,即

继续杂交下去,则得到第2,3,…,n代的结果。MATLAB脚本如下:

运行上述代码,可知多次杂交以后,最终遗传会稳定在:

MATLAB提供了数据可视化的简便技术。在科研实践中,试验观察得到的数据常常需要以图表的形式展现出来,MATLAB为数据的可视化提供了方便的工具。例如,下面的代码是利用contour函数实现的等值线图(见图1-2)。

图1-2 利用contour函数实现的等值线图

MATLAB还提供了很多用于记录和分享工作成果的功能,用户可以将MATLAB代码与其他语言和应用程序集成,分发成熟的MATLAB算法和应用。