第1章MATLAB编程基础
MATLAB是美国MATHWORKS公司推出的一款用于数值计算、可视化、编程的高级语言和交互式开发环境。采用MATLAB可进行数据分析、算法开发、模型创建。利用MATLAB语言、工具及内嵌数学函数,可进行多种方法的探索,快速实现解决方案。MATLAB应用范围很广,包括信号处理和通信、图像与视频处理、控制系统、试验与测量、计算金融学、计算生物学等,工业界和学术界数以百万计的工程师和科学家都在使用MATLAB这门科学计算语言。
MATLAB语言具有如下特点。
(1)一种可视化和应用开发的高级语言。
(2)可实现交互式探索,设计和问题求解的交互式开发环境。
(3)求解一般微分方程的数学函数,如线性代数、统计、傅里叶分析、滤波器、优化、数值积分。
(4)内嵌用于数据可视化和创建用户图形的图形学工具。
(5)用于改进代码质量,增加可维护性,性能*大化的开发工具。
(6)具有将基于MATLAB的算法与外部应用和C语言、Java语言、NET语言等集成的函数。
MATLAB是matrix laboratory的缩写,意为矩阵实验室。不同于其他编程语言(大部分一次处理一个数),MATLAB是对整个矩阵和数组进行运算。无论哪种数据类型,所有MATLAB变量都是多维数组。矩阵就是一个用于线性代数的二维数组。
1.1MATLAB快速入门
基于矩阵的MATLAB语言是*适合计算数学表达的方式之一。其内置图形使数据易于可视化,帮助用户深入洞悉数据特性。MATLAB可以帮助用户将想法扩展到桌面之外,对更大的数据集进行分析,并扩展到集群和云。
1.1.1矩阵与数组
与其他编程语言每次只处理一个数不同,MATLAB是对整个矩阵和数组进行运算。矩阵是常用于线性代数的二维数组。
1.数组创建
创建数组和矩阵可以采用多种方式。
创建一维数组,可用逗号或空格将数组元素分开。例如,输入a=[1234]或a=[1,2,3,4]并回车,命令窗口会显示:
数组a是一个行矢量。
创建矩阵,可用分号将行与行分隔开。例如,输入A=[123;456;789]并回车,命令窗口会显示:
创建矩阵还可以米用函数实现,如ones、zeros、rand等。例如,创建一个元素全为0的行矢量z,可用命令z=zeros(1,5),命令窗口会显示:
2.矩阵和数组运算
MATLAB允许用于一个算术运算符或函数对矩阵的所有元素进行运算。例如,
矩阵转置运算采用单引号实现。例如,
MATLAB可进行标准的矩阵乘法运算,用星号算符实现,例如,验证矩阵a与其逆矩阵的乘积是否为单位矩阵,注意p不是整数值矩阵,因为MATLAB是以浮点形式存储数值的,而算术运算对于实际值与其浮点表示值的微小差别很敏感。可以用format命令显示更多有效位。
矩阵按元素的乘法可用算符实现。例如,
矩阵乘法、除法、幂运算都有相应的按元素进行计算的算符。例如,计算矩阵a的元素的三次方。
3.数组连接
MATLAB可将多个数组连接起来成为一个更大的数组。实际上,单个元素连接起来就构成一个数组,这时连接算符是方括号“[]:连接,这时要求两个数组行数相同。类似地,垂直方向的连接。例如,”。用逗号将两个数组连接起来,称为水平用分号可将具有相同列数的两个数组进行垂直方向的连接。例如,
4.复数
复数由实部和虚部构成,其中虚数单位是-1的平方根。在MATLAB中,可以用或j表示复数的虚部。例如,
1.1.2数组引用
MATLAB中的每一个变量都是一个数组,可以保存多个数。如果要存取一个数组中指定的元素,可以采用引用方法。例如,4X4魔方阵,
引用数组中特定的元素有两种方法,一种方法是用元素的行和列下标来引用。例如,
另一种方法是用一个下标来引用,下标排列顺序为按列从上到下、从左到右的顺序,这种引用方法称为线性引用。例如,
引用数组中的多个元素,可以用冒号来确定起始位置和终止位置。单独的冒号,没有起始值和终止值,则表示引用该维度的全部元素。例如,
冒号还可以用来创建等间隔大小的向量,格式为“起始值:步长:终止值”。如果步长为1,则可以省略。例如,
1.1.3字符串
字符串是一个用两个单引号引起来的任意多个字符构成的序列,可以将字符串赋给变量。例如,
如果文字中己包含单引号,则在定义中需要用两个单引号。例如,
同所有MATLAB变量一样,myText和otherText都是数组。它们的数据类型是char,
这是短字符型数据,用whos命令可以看到。
与连接数值型数组一样,可以用方括号“[]”连接字符串。例如,
用函数num2str或int2str可以将数值转换为字符串。例如,
1.1.4函数调用
MATLAB提供了大量的函数用于完成计算任务。这里的函数相当于其他编程语言中的子程序或方法。
一般的函数包含输入参数和输出参数。输入参数用圆括号“()”括起来,若有多个输入参数,则它们之间用逗号分隔开;输出参数用方括号“[]”括起来,若有多个输出参数,则它们之间也用逗号分隔开;若输入参数是字符串,则用单引号引起来;有的函数既没有输入参数,也没有输出参数,如clc、clf等,直接输入函数名即可。
1.1.5二维和三维图形
用函数plot可以绘制二维线图。例如,绘制0到2n正弦函数曲线,可用下面的语句实现。
后三条语句的作用是给坐标轴加标注、给图形加标题。绘制的正弦曲线如图1-1所示。在plot调用中加入第三个和第四个参数,可以修改线型、颜色和线宽。例如,用可绘制如图1-2所示的正弦曲线。
如果要在一个图形窗口中绘制两条或多条曲线,可以用holdon命令保持当前图形窗口,直到用hold off命令关闭保持功能,所有曲线都绘制在当前的图形窗口中。例如,
展开