回 帖 发 新 帖 刷新版面

主题:[讨论]关于矩阵转置

对于二维或者高纬矩阵,求其转置矩阵用transpose(),但是对于一维数组,该怎么求其转置矩阵?我有两个想法,因为我求的是矩阵特征向量的转置矩阵,而特征向量又是一列,所以有这种想法:
1.把所有的特征向量放在一起求其转置矩阵,比如N*N矩阵,转置以后还是N*N的吧?然后取第一行做为第一个特征向量的转置,第二行作为第二个特征向量的转置,一次类推得到所有特征向量的转置。
2.自己设计算法,将一列的数转化为一行的数,遇到虚数乘以负号。比如

do i=1,n
  real(c(i,1))=real(d(1,i))
  aimag(c(i,1))=-aimag(d(1,i))
end do
  这样设置应该可以吧?

回复列表 (共1个回复)

沙发

TRANSPOSE() 只针对二维数组的.
我之前说对一维数组没所谓转置是因为对于一维数组, 你把它看成行向量还是列向量只是你的角度. 要注意的只是它们参与运算的时候的处理.
如果定义为定义为c(N,1)), 这个已经看成为二维数组, 只是它退化了而已, 可以直接用TRANSPOSE()
而且取复共轭是有内部函数CONJG实现, 记得也可以加数组.

楼主, 我觉得你有些问题是被表象所迷惑了. 其实配合这数学本质来理解这些函数的用法就可以了.

我来回复

您尚未登录,请登录后再回复。点此登录或注册