Matlab 的数据结构与运算

数据结构与运算

1 基本数据结构

(1) 常量、变量与赋值语句

MATLAB中,变量名区分大小写、不超过31位、不能有中文(包括文件名)、系统自动根据所赋予变量的值或对变量进行的操作来确定变量的类型。常量是计算机中不变的量,如ijpiNaNInf等,常量可任意调用。

A-7  MATLAB的部分特殊变量和常量

特殊变量和常量

   

ans

如果没指定输出到一个变量,系统自动创建ans,存储输出结果

eps

计算机的浮点运算误差限,即相对精度

pi

π3.14159265358979……,返回圆周率的近似值

i,j

基础的叙述单元

inf

返回IEEE算法的正无穷大量,如n/0即产生inf(其中Nwei 实数)

NaN

返回IEEE算法的非数值,如0/0inf/inf,关于NaN的算术运算等

MATLAB的赋值语句有两种结构,见表A-8

A-8  Matlab 赋值语句结构

类型

基本结构

举例

直接赋值语句

赋值变量=赋值表达式

b=2*a

函数调用语句

[返回变量列表]=函数名(输入变量列表)

[U,S,V]=svd(x,y)

(2) 矩阵

矩阵是MATLAB数据存储的基本单元,而矩阵的运算是MATLAB语言的核心,在MATLAB语言系统中几乎一切运算均是以对矩阵的操作为基础的。

矩阵是MATLAB的基本变量单位,矩阵元素用方括号“[]”括住,每行内的元素间用逗号“,”或空格隔开,行与行之间用分号“;”或回车键隔开,矩阵的元素可以是数值或表达式。例如:

矩阵的创建有直接输入、外部文件读入法、函数的生成等方式。对于一些比较特殊的矩阵(单位阵、矩阵中含10较多),由于其具有特殊的结构,MATLAB提供了一些函数用于生成这些矩阵。常用的如表A-9 所示。

A-9  特殊矩阵生成函数

zeros(m)

生成m阶全0矩阵

eye(m)

生成m阶单位矩阵

ones(m)

生成m阶全1矩阵

rand(m)

生成m阶均匀分布的随机阵

(3) 多维数组

MATLAB提供了一个cat()函数来构造多维数组,该函数格式为:

A=cat(nA1A2Am)

其中n=1n=2时分别构造[A1;A2;…;Am][A1,A2,…,Am],结果是二维数组n=3可以构造出三维数组。

2 矩阵运算

矩阵运算是Matlab的重要特色之一,以下主要介绍矩阵的基本运算。

(1) 矩阵代数运算

 Matlab中常用的矩阵代数运算有加、减 、乘、 除和幂。

A-10  矩阵基本运算符及其意义

符号

意义

符号

意义

符号

意义

符号

意义

符号

意义

+

矩阵相加

-

矩阵相减

^

矩阵幂

.^

矩阵乘方

/

矩阵右除

*

矩阵叉乘

.*

矩阵点乘

\

矩阵左除

.\

矩阵左点除

./

矩阵右点除

(2) 矩阵逻辑运算

逻辑运算是MATLAB中数组运算所特有的一种运算形式,也是几乎所有的高级语言普遍适用的一种运算。它们分别是&(逻辑与)|(逻辑或)~(逻辑非)

(3) 矩阵比较运算

A-11 矩阵的比较运算符及其意义

运算符

意义

运算符

意义

=   =

等于

大于

~   =

不等于

<=

小于等于

小于

>=

大于等于

 图形绘制

MATLAB还拥有大量简单、灵活、易用的二维和三维图形绘制命令以及丰富的图形表现能力,通过对图形的线型、颜色、光线、视角等设置和处理,将计算结果更好的标示出来。

1 二维绘图

下面具体描述绘制二维图形的一般步骤及典型指令。首先,二维数据准备:

l  选定所要表现的范围

l  产生自变量采样向量

l  计算相应的函数值向量

>> t = pi*(0:100)/100;  %自变量

>> y = sin(t).*sin(9*t);  %函数值

选定图形窗及子图位置:

l 默认打开figure No.1,或当前窗、当前子图

l 可用指令指定图形窗号和子图号

>> figure(1)         %指定1号窗口

>> subplot(2,2,3)     %指定3号子图

调用(高层)绘图指令:线型、色彩、数据点型

>> plot(t, y, ’b-’)   %用蓝色实线画图

设置轴的范围和刻度、坐标分格线:

>>  axis([0,pi,-1,1])    %轴范围

>>  grid on           %坐标分格线

图形注释:图名、坐标名、图例、文字说明

>> title(‘调制波形’)       %图名

>> xlabel(‘t’);            %x轴名

>> ylabel(‘y’);            %y轴名

>> legend(‘sin(t)sin(9t)’);   %图例

>> text(2,1,’y=sin(t)shi(9t)’); %文字说明

最后,可以对图形进行精细修饰(即图柄操作):

l 利用对象属性值设置

l 利用图形窗工具条操作

>>  set(h,’MarkSize’,10) %数据点大小

【例1】绘制正弦曲线y=sin(x),结果如图A-6所示。

>> x1=0:0.1:2*pi;        %x1的范围为0~2π,步长为0.1

>> y1=sin(x1);                 %y1x1的正弦函数

>>plot(x1,y1);           %绘制2维图形

>> axis([0 4 0 2])     %将坐标轴范围设定为0402 

PLOT绘制曲线.png

2 三维绘图

首先,三维曲线绘图函数plot3进行说明。

2】三维曲线绘图,如图A-7所示。

>> x=0:0.1:20*pi;

绘制三维曲线.png

>> plot3(x,sin(x),cos(x))                            %按系统默认设置


除了三维曲线绘图,还有三维曲面、立体绘图等,下面的表A-12给出了三维绘图的一般步骤和典型指令。

A-12 绘制三维图形的步骤及典型指令

序号

步骤

典型指令

1

三维曲线数据准备:

l  先取一个参变量采样向量

l  计算各坐标数据向量

t =   t0:dt:t1;

x=f(t);y=f2(2);z=f3(t);

三维曲面数据:

l  产生自变量采样向量

l  产生自变量格点矩阵

l  计算格点矩阵相应的函数值矩阵

x=x0:dx:x1;

y=y0:dy:y1;

[x, y]=meshgrid(x, y);

Z=f(x,   y);

2

选定图形窗及子图位置

figuresubplot

3

调用三维曲线绘图指令:线型、色彩、数据点型

plot3(x, y, z’b-’)

调用三维曲面绘图指令

mesh(X,   Y, Z)

4

设置轴的范围和刻度、坐标分格线

axis([x0,x1,y0, y1, z0, z1])

grid   on

5

图形注释:图名、坐标名、图例、文字说明

xlabelylabelzlabel

titlelegendtext

6

着色、明暗、灯光、材质处理

colormapshadinglightmaterial

7

图形的精细修饰(图柄操作)

setget