您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页matlab二元行向量,Matlab中如何将二维表格数据转换成plot3函数所需向量

matlab二元行向量,Matlab中如何将二维表格数据转换成plot3函数所需向量

来源:华佗小知识

plot3(x,y,z)中,x,y,z均为同维向量,记x=(x1,x2,…,xn),y=(y1,y2,…,yn),z=(z1,z2,…zn),则x,y,z应满足:zi=f(xi,yi),但有时我们得到的原始数据是以二维表形式给出的,这时就涉及到将二维表数据转换成向量的问题,现通过以下实例来说明转换方法。

有二维表如fig.1所示,则坐标向量应为:x=(1 1 1 1;2 2 2 2;3 3 3

3);y=(2 3 4 5;2 3 4 5;2 3 4 5),表内除去首行首列后的元素应表示为:z=(3 4 5 6;4 5 6

7;5 6 7 8)。

a.坐标向量的生成:

>> y=2:5;

>>

y=repmat(y,3,1);

>>

y=reshape(y',1,12);

>> y

y =

Columns 1 through 9

2

3

4     5

2

3     4

5

2

Columns 10 through 12

3

4

5

>> x=1:3;

>>

x=repmat(x,4,1);

>>

x=reshape(x,1,12);

>> x

x =

Columns 1 through 8

1

1

1     1

2

2     2

2

Columns 9 through 12

3

3

3

3

>>

b.因变量向量的生成:

ii.Matlab命令窗口输入如下代码:

>>

z=load('Data.txt');

>>

z=reshape(z',1,12);

>> z

z =

Columns 1 through 9

3

4

5     6

4

5     6

7

5

Columns 10 through 12

6

7

8

>>

c.plot3绘制结果:

d.总结

关键用到了两个函数,即repmat和reshape函数。

repmat函数在之前的博文中已有介绍,故不再赘述。

reshape函数:该例中所用函数格式为:reshape(X,M,N),表示返回一个M*N矩阵,不妨记为R,R的元素均按列取自矩阵X。现举例说明其用法,设X为2*3矩阵,则执行reshape(X,3,2)的过程可理解为先将X转换成列向量[x11

x21 x12 x22 x13 x23]'(注:" ' "在matlab中表示对矩阵进行转置),再将该列向量分成两块:[x11 x21

x12]'及[x22 x13 x23]'分别作为R的第一列和第二列,如下示例所示:

>> z

z =

1

2

3

4

5

6

>> reshape(z,3,2)

ans =

1

5

4

3

2

6

一般地,X为p*q矩阵,则执行reshape(X,M,N)的过程可理解为:

1.将X转换成列向量[x11 x21……xp1 x12 x22……xp2……x1q x2q……xpq]';

2.将步骤​1中的列向量分成N份,L1,L2……LN;

3.R(:,j)=Lj;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务