《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 1770|回复: 3
收起左侧

[提问] matlab里面什么样的命令能把一个块列向量化为一个块行向量

[复制链接]
发表于 2013-8-8 16:20:17 | 显示全部楼层 |阅读模式

各位大侠,请问:
MATLAB里面什么样的命令能把一个块列向量化为一个块行向量,如

A= 1    13    25    37
     2    14    26    38
     3    15    27    39
     4    16    28    40
     5    17    29    41
     6    18    30    42
     7    19    31    43
     8    20    32    44
     9    21    33    45
    10    22    34    46
    11    23    35    47
    12    24    36    48
怎么化为(不能用 for 循环来做,直接用Matlab里面的一些库函数)
B=1    13    25    37         5    17    29    41         9    21    33    45
     2    14    26    38        6    18    30    42         10    22    34    46
     3    15    27    39        7    19    31    43         11    23    35    47
     4    16    28    40        8    20    32    44         12    24    36    48
也就是
A=[A1 ; A2 ; …… ; An]     这样一个块列向量(这里的A是已给定的,不是以[A1;A2;……;An]这种形式给出来的,这里是为了方便),然后用什么样的命令把A化成    B=[A1, A2, …… , An]  这样一个块行向量啊?
当然,不能用 for 循环来做,直接用Matlab里面的一些库函数。   
O(∩_∩)O谢谢
发表于 2013-8-8 19:35:35 | 显示全部楼层

  1. A= [1    13    25    37
  2.      2    14    26    38
  3.      3    15    27    39
  4.      4    16    28    40
  5.      5    17    29    41
  6.      6    18    30    42
  7.      7    19    31    43
  8.      8    20    32    44
  9.      9    21    33    45
  10.     10    22    34    46
  11.     11    23    35    47
  12.     12    24    36    48];
  13. Btemp = im2col(A,[4 4],'distinct'); % 每块为4*4的矩阵
  14. B = reshape(Btemp,4,[]); % 重排后行数是4
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-8 21:03:56 | 显示全部楼层
baby_wolf 发表于 2013-8-8 19:35

非常感谢您!   
回复 支持 反对

使用道具 举报

发表于 2013-8-9 13:49:03 | 显示全部楼层
baby_wolf 发表于 2013-8-8 19:35

高手出马,一个顶两啊!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2020-8-10 09:29 , Processed in 0.057086 second(s), 13 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表