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)。

a4c26d1e5885305701be709a3d33442f.pngfig.1

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.因变量向量的生成:

i.在Matlab工作目录新建文本文件,将excel表格内的因变量数据复制进去

a4c26d1e5885305701be709a3d33442f.pngfig.2

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绘制结果:

a4c26d1e5885305701be709a3d33442f.pngfig.3

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值