matlab使用reshape时按照列优先原则取元素和摆放元素

参考 http://blog.csdn.net/superdont/article/details/3992033

a=[1  2

3  4]

如果使用b=reshape(a,1,4),则得到的结果是  b=[1 3 2 4]

如果想得到b=[1 2 3 4],  需要使用  b=reshape(a',1,4)

因为reshape使用的列优先!(就是说按照列取元素,然后按照列重新放元素)

b转化回去是同样的道理。

例题如下:

 

>> a=[1 ,2 ;3,4]
a =
     1     2
     3     4
>> b=reshape(a,1,4)
b =
     1     3     2     4
>> b=reshape(a',1,4)
b =
     1     2     3     4
>> a=reshape(b,2,2)
a =
     1     3
     2     4
>> a=reshape(b',2,2)
a =
     1     3
     2     4

 


posted @ 2014-06-13 22:18  whaozl  阅读(1680)  评论(0编辑  收藏  举报