本节书摘来自异步社区《matlab神经网络超级学习手册》一书中的第1章,第1.2节,作者:matlab技术联盟 , 刘冰 , 郭海霞著,更多章节内容可以访问云栖社区“异步社区”公众号查看
matlab神经网络超级学习手册
matlab有两种基本的数据运算量:数组和矩阵,二者单从形式上不好区分。每一个变量可能被当作数组,也可能被当作矩阵,这要依靠所采用的运算法则或运算函数来定。
在matlab中,数组与矩阵的运算法则和运算函数是有区别的。但不论是matlab的数组还是matlab的矩阵,都已经改变了一般高级语言中使用数组的方式和解决矩阵问题的方法。
在matlab中,矩阵运算是把矩阵视为一个整体来进行,基本上与线性代数的处理方法一致。矩阵的加减乘除、乘方开方、指数对数等运算,都有一套专门的运算符或运算函数。
对于数组,不论是算术的运算,还是关系或逻辑的运算,甚至于调用函数的运算,形式上可以当作整体,有一套有别于矩阵的、完整的运算符和运算函数,但实质上却是针对数组的每个元素施行的。
当matlab把矩阵(或数组)当作一个独立的运算量来对待后,向下可以兼容向量和标量。不仅如此,矩阵和数组中的元素可以用复数作基本单元,向下可以包含实数集。这些是matlab区别于其他高级语言的根本特点。以此为基础,还可以概括出如下一些matlab的特色。
1.语言简洁,编程效率高
因为matlab定义了专门用于矩阵运算的运算符,使得矩阵运算就像列出算式执行标量运算一样简单,而且这些运算符本身就能执行向量和标量的多种运算。
利用这些运算符可使一般高级语言中的循环结构变成一个简单的matlab语句,再结合matlab丰富的库函数可使程序变得相当简短,几条语句即可代替数十行c语言或fortran语言程序语句的功能。
2.交互性好,使用方便
使用c语言或fortran语言的时候,首先需要编写源程序,然后对其进行编译、连接,待形成可执行文件后,方可运行程序得出结果。
而在matlab的命令窗口中,输入一条命令,立即就能看到该命令的执行结果,体现了良好的交互性。交互方式减少了编程和调试程序的工作量,给使用者带来了极大的方便。
3.强大的绘图能力,便于数据可视化
matlab不仅能绘制多种不同坐标系中的二维曲线,还能绘制三维曲面,体现了强大的绘图能力。正是这种能力为数据的图形化表示(即数据可视化)提供了有力工具,使数据的展示更加形象生动,有利于揭示数据间的内在关系。
4.领域广泛的工具箱,便于众多学科直接使用
matlab工具箱(函数库)可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互的功能。而学科性工具箱是专业性比较强的工具箱,如优化工具箱、统计工具箱、控制工具箱、通信工具箱、图像处理工具箱、小波工具箱等。
5.开放性好,便于扩展
除内部函数外,matlab的其他文件都是公开的、可读可改的源文件,体现了 matlab的开放性特点。使用者可修改源文件和加入自己的文件,甚至构造自己的工具箱。
6.文件i/o和外部引用程序接口
支持读入更大的文本文件,支持压缩格式的mat文件,用户可以动态加载、删除或者重载java类等。正是由于以上几个特点,matlab的应用领域十分广阔,典型的应用举例如下。
数据分析
数值与符号计算
工程与科学绘图
控制系统设计
航天工业
生物医学工程
汽车工业
语音处理
图像与数字信号处理
财务、金融分析
建模、仿真及样机开发
新算法研究开发