改变矩阵的等级

时间:2016-08-31 05:34:39

标签: matrix fortran

我有

给出的排名第一阵列
COMPLEX(KIND = DBL),DIMENSION(DIMJ)::INITIALSTATE

我如何将其排名转换为

DIMENSION(DIMJ,1)

所以我可以对它执行矩阵运算 - 转置等。

请注意,更改很简单。在这两种情况下,我们都有一个列向量。但Fortran不会以第一种形式传播数组。假设DIMJ是初始化的整数。

另外,很明显,我希望在操作之后,复数在正确的位置保持完整。

是否可以在fortran中执行此类操作?

1 个答案:

答案 0 :(得分:1)

如果您只想要一个临时只读版本的数组,可以随时使用RESHAPE

TRANSPOSEDSTATE = transpose(reshape(INITIALSTATE, (/ DIMJ, 1 /)))

但这不会改变INITIALSTATE变量的形状。此外,这与

相同
TRANSPOSEDSTATE = reshape(INITIALSTATE, (/ 1, DIMJ /))

不需要transpose