lycid 发表于 2012-10-12 10:16:49

矩阵分块 元素重排

本帖最后由 lycid 于 2012-10-12 10:18 编辑

我在这里贴出示例性数据,现有如下矩阵
AA=[-0.2586 - 0.0010i-0.0007 - 0.8833i
-0.2557 - 0.0010i-0.0007 - 0.8840i
-0.2527 - 0.0010i-0.0007 - 0.8847i
-0.2498 - 0.0010i-0.0007 - 0.8854i
-0.2468 - 0.0010i-0.0007 - 0.8861i
   0.0003 - 1.0564i-0.2586 - 0.0010i
   0.0003 - 1.0573i-0.2557 - 0.0010i
   0.0003 - 1.0581i-0.2527 - 0.0010i
   0.0003 - 1.0589i-0.2498 - 0.0010i
   0.0003 - 1.0598i-0.2468 - 0.0010i];
如何快速转换为
BB=[-0.2586 - 0.0010i-0.0007 - 0.8833i
   0.0003 - 1.0564i-0.2586 - 0.0010i
-0.2557 - 0.0010i-0.0007 - 0.8840i
   0.0003 - 1.0573i-0.2557 - 0.0010i
-0.2527 - 0.0010i-0.0007 - 0.8847i
   0.0003 - 1.0581i-0.2527 - 0.0010i
-0.2498 - 0.0010i-0.0007 - 0.8854i
   0.0003 - 1.0589i-0.2498 - 0.0010i
-0.2468 - 0.0010i-0.0007 - 0.8861i
   0.0003 - 1.0598i-0.2468 - 0.0010i];
这是第一个问题,然后还需要分别生成多个矩阵
CC1=[-0.2586 - 0.0010i-0.0007 - 0.8833i
   0.0003 - 1.0564i-0.2586 - 0.0010i];
CC2=[-0.2557 - 0.0010i-0.0007 - 0.8840i
   0.0003 - 1.0573i-0.2557 - 0.0010i];
按这种规律往下排直至最后,在BB行数非常多时我是用for循环,但再进行相关运算时效率低下,请问有没有更好的做法?



lin2009 发表于 2012-10-15 17:14:48

没看出有什么不同,
是不是“...=[ -0.2586 - 0.0010i... ” 中的“-0.2586 - 0.0010i”在AA中表示一个数(复数),而在BB中却表示两个数(一个是实数,一个是纯虚数)?
若是这样的话,用数组运算就可以了。反过来也一样。

lycid 发表于 2012-10-17 20:08:26

lin2009 发表于 2012-10-15 17:14 static/image/common/back.gif
没看出有什么不同,
是不是“...=[ -0.2586 - 0.0010i... ” 中的“-0.2586 - 0.0010i”在AA中表示一个数( ...

谢谢您的回复,是我没说清楚,简单说吧,A是6*2的矩阵
A=;
变成
B=;
形式,然后是分成小矩阵
C1=;
C2=;
C2=;
这是我计算程序的一部分,实际上可能是2n*2的矩阵,后边必须有矩阵运算
页: [1]
查看完整版本: 矩阵分块 元素重排