第2章 MATLAB数值计算(8)

2019-08-31 19:40

说明:x、y为行向量;xi是插值范围内任意点的x坐标,yi则是插值运算后的对应y坐标;method是插值函数的类型,“linear”为线性插值(默认),“nearest”为用最接近的相邻点插值,“spline”为三次样条插值,“cubic”为三次插值。

【例2.23续】经过线性插值、三次样条插值计算出横坐标为9.5的对应纵坐标,如图2.6所示。

图2.6 线性插值和三次样条插值

x1 y0

y01=interp1(x1,y0,9.5) %线性插值

x1 =

1 2 3 4 5 6 7 8 9 10 y0 =

Columns 1 through 6

16 32 70 142 260 436

Columns 7 through 10

682 1010 1432 1960 y01 =

1696

y02=interp1(x1,y0,9.5,'spline') %三次样条插值

y02 =

1682

2. 二维插值

二维插值是指对两个自变量的插值,interp2函数是用来进行二维插值的。 语法:

zi=interp2(x,y,z,xi,yi,’method’)

说明:method是插值函数的类型有,“linear”为双线性插值(默认),“nearest”为用最接近点插值,“cubic”为三次插值。

2.5元胞数组和结构数组

MATLAB的元胞数组(Cell Array)和结构数组(Structure Array)都能在一个数组里存放各种不同类型的数据。

2.5.1元胞数组

1. 元胞数组的创建

元胞数组中的基本组成是元胞,每一个元胞可以看成是一个单元(Cell),用来存放各种不同类型的数据。

(1) 直接使用{}创建

【例2.24】直接使用{}创建元胞数组。

clear

A={'This is the first Cell.',[1 2;3 4];eye(3),{'Tom','Jane'}}

A =

[1x23 char ] [2x2 double] [3x3 double] {1x2 cell } whos

Name Size Bytes Class

A 2x2 524 cell array

Grand total is 49 elements using 524 bytes

程序分析:创建的元胞数组中的元胞A(1,1)是字符串,A(1,2)是矩阵,A(2,1)是矩阵,而A(2,2)为一个元胞数组。

(2) 由各元胞创建

【例2.24续】用创建各元胞的方法创建元胞数组。

B(1,1)={'This is the second Cell.'}

B =

'This is the second Cell.' B(1,2)={5+3*i}

B =

[1x24 char] [5.0000+ 3.0000i] B(1,3)={[1 2;3 4; 5 6]}

B =

[1x24 char] [5.0000+ 3.0000i] [3x2 double]

(3) 由各元胞内容创建

【例2.24续】创建各元胞内容的方法创建元胞数组。

C{1,1}='This is the third Cell.'; C{2,1}=magic(4)

C =

'This is the third Cell.'

[4x4 double]

2. 元胞数组的内容显示

在MATALB命令窗口中输入元胞数组的名称,并不直接显示出元胞数组的各元素内容值,而是显示各元素的数据类型和维数。如【例2.24】中显示元胞数组A:

A

A =

[1x23 char ] [2x2 double] [3x3 double] {1x2 cell }

(1) 使用celldisp命令显示元胞数组的内容

celldisp(A)

A{1,1} =

This is the first Cell. A{2,1} =

1 0 0 0 1 0 0 0 1 A{1,2} =

1 2 3 4 A{2,2}{1} = Tom

A{2,2}{2} = Jane

celldisp(B)

B{1} =

This is the second Cell. B{2} =

5.0000 + 3.0000i B{3} =

1 2 3 4 5 6 celldisp(C)

C{1} =

This is the third Cell. C{2} =

16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1

程序分析:{}表示元胞数组的元胞元素内容,A{2,2}{1}表示第2行第2列的元胞元素中存放的元胞数组的第1个元胞元素的内容。

(2) 使用cellplot命令以图形显示元胞数组的内容

【例2.24续】用cellplot命令用图形显示元胞数组的内容,如图2.7所示。

cellplot(A)

图2.7 用图形显示元胞数组的内

3. 元胞数组的内容获取 (1) 取元胞数组的元素内容

【例2.24续】取出A(1,2) 元胞元素的内容以及矩阵中的元素内容。

x1=A{1,2} %取A(1,2) 元胞元素的内容

x1 =

1 2 3 4

x2=A{1,2}(2,2) %取A(1,2) 元胞元素的矩阵第二行第二列内容

x2 = 4

程序分析:x1是矩阵,x2是标量。 (2) 取元胞数组的元素

x3=A(1,2)

x3 =

[2x2 double]

程序分析:x3是元胞数组。

(3) 使用deal函数取多个元胞元素的内容

[x4,x5,x6]=deal(A{[2,3,4]})

x4 =

1 0 0 0 1 0 0 0 1 x5 =

1 2 3 4 x6 =

'Tom' 'Jane'

2.5.2结构数组

结构数组的基本组成是结构(Structure),每一个结构都包含多个域(Fields)。

1. 结构数组的创建 (1) 直接创建

【例2.25】直接创建结构数组存放图形对象。

ps(1).name='曲线1'

ps =

name: '曲线1' ps(1).color='red'

ps =

name: '曲线1' color: 'red'

ps(1).position=[0,0,300,300]

ps =

name: '曲线1' color: 'red'

position: [0 0 300 300] ps(2).name='曲线2'; ps(2).color='blue';

ps(2).position=[100,100,300,300]

ps =

1x2 struct array with fields: name color

position

程序分析:ps是结构数组,ps(1)和ps(2)是结构,name、color和position是域。 (2) 利用struct函数创建

【例2.25续】利用struct函数创建结构数组。

ps(1)=struct('name','曲1','color','red','position',[0,0,300,300]);

ps(2)=struct('name','曲2','color','blue','position',[100,100,300,300])

线线

ps =

1x2 struct array with fields: name color

position

2. 结构数组数据的获取和设置 (1) 使用“.”符号获取

【例2.25续】结构数组数据的获取。

x1=ps(1)

x1 =

name: '曲线1' color: 'red'

position: [0 0 300 300] x2=ps(1).position


第2章 MATLAB数值计算(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年内蒙古财经大学会计专硕学制、学费、招生人数、网报数据、

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: