4列256行矩阵,重组成16列64行,请问如何实现。
我有一个C 矩阵要处理里面的数据,现在是C 是 256行4列(由于保存数据时,每4个数加了换行)为了便于数据分析,现在需要把它变成16列64行 的 A矩阵,用C矩阵每4行变成A 矩阵的一行(例如C 的前 4行变成 A的第一行,C的5-8行变成 A的第2行,以此类推)。
我自己做的循环总是差行,要不就是多行,还请高手帮忙。
应该是比较简单的问题。郁闷中~~ 在线等。。
[ 本帖最后由 ChaChing 于 2009-3-11 21:01 编辑 ] help reshape 刚看了下,但是,我要的新矩阵是,C 的每4行变成A 的一列, 用 reshape(C,64,16)是按列取值排成新矩阵的
所以还是解决不了。
[ 本帖最后由 ChaChing 于 2009-3-11 20:42 编辑 ] 解答先 将c矩阵 求 c' 后 reshape。 笨啊 :lol 直接reshape 就ok 直接reshape 不行啊 ,我试了,不符合我的要求。 真可以的话,请给出简单程序谢谢。 呵呵,进来学习了,应该是求转置后再reshape吧... 抱歉早上没细看, 不知是否误解楼主意思了!
"由于保存数据时,每4个数加了换行", 什麽意思?
1F-每4行c变成一行a, 3F-每4行c变成一列a, 楼主到底要那个?
针对1F, c为4*256, a为16*64, 直接 a=reshape(c,16,64)就好!
针对3F, c为4*256, a为64*16, 就是 a=reshape(c,16,64); a=a';就好!
[ 本帖最后由 ChaChing 于 2009-3-11 20:45 编辑 ]
回复 8楼 ChaChing 的帖子
1F的c为256*4,A为64*16,由于matlab按列操作,应该先转置,后变形。ChaChing兄看反了吧。"由于保存数据时,每4个数加了换行"应该是指c为4列的原因,我是这样理解的,呵呵 是1F-每4行c变成一行a,在这再次确认一下。
这样主任,针对 1F 的解法, 直接a=reshape(c,16,64) 是不行的, 必须a1=reshape(c‘,16,64)注意这里是c'
然后 再 a=a1' 才能得到我所要的矩阵,因为 直接a=reshape(c,16,64) 这个命令,是按列的顺序来排列矩阵里面的数据,所以直接a=reshape(c,16,64) 得不到我要求的那个矩阵。 主任可以验证一下。
9楼的说的是对的 c 就是 4列的矩阵 (256行) 。所以变幻时需要先转置矩阵。
[ 本帖最后由 ChaChing 于 2009-4-8 08:03 编辑 ] 伤脑筋! 行-column, 列-row, 是否用词相同!
回复 12楼 ChaChing 的帖子
行-row, 列-column呵呵
回复 13楼 friendchj 的帖子
哇! 真的用词不同!我怕是自己搅错, 特地查过资料了! 真的相反!
日後可要小心了! 谢谢! 对啊 行-row, 列-column主任 怎么行-column, 列-row
是要注意呵呵. 总之谢啦。喜欢这里。
页:
[1]